11

作为服务器端 Web 框架用户(我使用 Django),我喜欢模板的组织方式。基本模板的页面标题、css、js、页眉和页脚被定义为块,可以在子模板中覆盖。

Angular 的做法是什么?

每个页面的内容当然是由ng-view提供的,除此之外,我也无能为力。例如,标题标签在视图之外,我无法动态更改它。

最好给我一个完整项目的示例代码,看看模板是如何组织的。大多数示例项目都很小,不需要在模板中继承。

4

2 回答 2

6

Django 的模板非常好,但请记住 Angular 主要用于构建 SPA(单页应用程序),因此它在概念上有所不同。在典型的 Angular 项目中,您将让服务器端框架生成基本模板,然后将路由交给 Angular 处理其他所有内容,并且根据路由有条件地包含内容部分。

Django 和 Angular 模板之间的一个相似之处是 ng-include 指令,它可以让你吸收一些可重用的 html。但是没有什么类似于 Django 的 {{block}} 或 {{block super}} 系统。

你可以编写一个自定义指令来引入额外的 css/javascript 而不是使用 {{block extrahead}}。

对于动态标题标签,您需要确保将控制器元素设置在头元素上方,否则它将超出范围,因此无法访问。我们在基本模板中这样做:

<title data-ng-bind="title">Oursite</title>

然后在该 URL 的控制器中:

$rootScope.title = 'Dashboard | Oursite';

线程中的其他建议方法。

于 2012-12-05T21:23:36.853 回答
4

看看受 Jade、Handlebars 和 Django 或更简单的ng-layout启发的angular-blocks

于 2014-03-26T15:29:43.583 回答