我很难理解控制器的用途是什么。我知道这是你引用的东西,但是因为你可以将它放在一个指令中,是否有一种情况你需要在你的html中使用ng-controller来代替特定部分,而不是创建一个内置控制器的指令在?
答案 0 :(得分:11)
是否有一种情况需要将ng-controller用于html中的特定部分,而不是创建内置控制器的指令?
是的,绝对是的。
对于这两种方法中的任何一种,可能还有其他一百种情况,但我相信这应该足以证明使用另一种方法是合理的。
至于两者之间的差异,请看@yvesmancera已经指出的问题(angularjs-directives-vs-controllers)。
在Angular中,Controller由JavaScript构造函数定义,该函数用于扩充Angular Scope。
当Controller通过ng-controller指令附加到DOM时,Angular将使用指定的Controller的构造函数实例化一个新的Controller对象。将创建一个新的子范围,并将其作为$ scope的构造函数的可注入参数提供。
在较高级别,指令是DOM元素上的标记(例如属性,元素名称,注释或CSS类),它告诉AngularJS的HTML编译器($ compile)将指定的行为附加到该DOM元素甚至转换DOM元素及其子元素。