2012-12-05 67 views
11

作为服务器端Web框架用户(我使用Django),我喜欢模板的组织方式。基本模板的页面标题,CSS,js,页眉和页脚被定义为块,并且可以在子模板中重写。模板在angular.js中 - 继承

这是什么角度的做法呢?

每个页面的内容当然由ng-view提供,除此之外,我不能做太多。标题标签例如在视图外,我不能动态改变它。

给我一个全面项目的示例代码以查看模板的组织方式将是一件好事。大多数示例项目都很小,不需要模板中的继承。

回答

6

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

Django和Angular模板之间的一个相似之处是ng-include指令,它允许您吸取可重复使用的html位。但是没有什么与Django的{{block}}或{{block super}}系统类似。

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

对于动态标题标签,您需要确保您的控制器元素设置在head元素上方,否则它将超出范围,从而无法访问。我们不喜欢这样的基本模板:

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

然后在控制为URL:

$rootScope.title = 'Dashboard | Oursite'; 

的其他this线程建议的方法。

4

看看angular-blocks,它的灵感来自Jade,Handlebars和Django,或者更简单的ng-layout

+0

我试过使用角块,挣扎了一个小时但不工作,你能帮我吗? –