1
我遇到了AngularJS指令的一個相當不直觀的方面,我很好奇這種行爲是否存在邏輯原因。當我指定的指令的定義控制器:在指令定義中指定控制器不會創建新的作用域
angular.module('MyApp.directives', [])
.directive('myDirective, function() {
templateUrl: "my-template.html",
controller: "MyController"
};
指令的模板的範圍是該指令的所有實例相同。
但是,如果我不指定指令的定義控制器:使用ng-controller
直接
angular.module('MyApp.directives', [])
.directive('myDirective, function() {
templateUrl: "my-template.html"
};
,而是定義控制器的指令:
<my-directive ng-controller="MyController"/>
的每個實例MyController
收到自己的子範圍。
我期望這些方法能夠產生相同的結果,但顯然Angular根據控制器的聲明來區別控制器的範圍。是否有這種差異的原因?