【发布时间】:2014-12-13 05:02:33
【问题描述】:
我打算在具有不同控制器的多个视图中使用一个模板。
但现在我意识到我不能只在模板中编写通用绑定,因为值将放在 $scope.concreteControllerName 中。
ngInclude 的 Angular 文档这样说
此指令创建新范围。
我可以使用ng-init 指令并将控制器实例传递给模板的范围:
<ng-include src="..." ng-init="controller=concreteControllerName"/>
甚至更好
<ng-include src="..." ng-init="model=getModelForTemplate()"/>
然后在模板中写入{{controller.boundvalue}}。
我猜这是一个可行的解决方案。
在这里我想知道是否存在其他更好的方法,如果没有,是否应该始终将模板与传递模型的概念一起使用以从父范围抽象出来?
【问题讨论】:
-
看看这个SO question - 有几个答案很棒。
标签: angularjs angularjs-ng-include