buk*_*ski 1 javascript angularjs angularjs-directive angularjs-scope
所以我的问题是Controller构造函数执行多次.如果我有2 Directives与特定关联,Controller那么它运行2 + 1,如果3 Directives,然后3 + 1...等等.如果我在该控制器中有一个ajax请求来获取数据,那么它会运行那么多次并不是真正的必要...
为什么会这样?我非常担心它会使所有那些额外的不必要的ajax请求......
HTML:
<span ng-controller="MenuController as MenuCtrl">
<main-menu></main-menu>
</span>
Run Code Online (Sandbox Code Playgroud)
控制器:
var howManyTimes = 0;
angular.module("shredkit", ["myDirectives"])
.controller("MenuController", function(){
++howManyTimes;
console.log("HOW MANY TIMES? THAT MANY: " + howManyTimes )
})
Run Code Online (Sandbox Code Playgroud)
指示:
angular.module("myDirectives", [])
.directive("mainMenu", function(){
return{
restrict:"E", // type of directive - 'E' - element
templateUrl:'templates/main-menu.html',
controller:"MenuController",
controllerAs: "MenuCtrl"
};
})
Run Code Online (Sandbox Code Playgroud)
您的控制器为ng-controller标签运行一次:
<span ng-controller="MenuController as MenuCtrl">
Run Code Online (Sandbox Code Playgroud)
每次启动一个新的DOM元素时,该范围都在其中:
controller:"MenuController"
Run Code Online (Sandbox Code Playgroud)
这是因为角度控制器不是单例,它们是在每次使用时构造和启动的.
如果您打算使用多个控制器,因为您想要共享数据,请通过以下两种方式进行:
| 归档时间: |
|
| 查看次数: |
1138 次 |
| 最近记录: |