为什么控制器没有覆盖ng init变量
Why ng-init variable not overriden by controller?
我是angular的新手。
为什么我的ng-init变量没有在控制器中重写?
<div ng-init="name='Emmad'" ng-controller="TodoController as todoCtrl" >
<my-name></my-name>
</div>
我的控制器是:
App.controller('TodoController',['$scope',function($scope){
$scope.name = "Zahid";
}]);
我的指令是:
App.directive('myName',function(){
return {
restrict: 'EA',
template: '<b>{{name}}<b>'
}
});
输出始终为:
Emmad
它应该是"zahid",因为我在控制器中使用指令,控制器将覆盖名称变量。
问题:
1-为什么不是"zahid"?
2-如果我在上设置断点
$scope.name = "Zahid";
我在$scope中没有看到"name"变量,为什么?
感谢@Pankaj Parkar提供的详细答案,下面是答案的摘录。
从技术上讲,发生的情况是在注册ng-controller
函数之后对ng-init指令进行求值。这就是为什么ng-init
的初始化值在控制器内不可用的原因。
基本上,ng-controller
首先被调用的原因是优先级。如果你看一下优先级,ng-init
指令有450&指令的优先级选项,其中ng-controller指令有500,而从DOM AngularJS编译指令时,会根据优先级对它们进行排序。因此ng控制器首先被执行。
相关文章:
- ng init中的表达式无法使用ng repeat
- AngularJS ng-init does not work
- ng init未按预期工作
- 在<选择>使用angular ng选项可能使用ng init
- ng init未进行初始化
- AngularJS:如何在间隔后执行 ng-init
- 在指令之后加载的角度ng-init函数
- ng init与razor表达式
- 如何使用AngularJS在ng init中传递scope变量
- 如何访问ng-init或ng-checked中服务回调函数中声明的$scope变量
- 在我的HTML中用ng-init初始化$scope变量时出现问题
- 如何在ng-init中使用$scope变量
- 触发特定路由的其他指令,如ng-init或事件,如stateChangeStart
- 如何使用angularjs在单个ng-init-directice中调用多个函数
- AngularJS:我显然不理解ng-init的用法
- AngularJS:Ng:init-如何分配Ng:model
- 如何修复这个 AngualrJS 数据-ng-init 绑定 - 初学者
- ng-选项与ng-init无法正常工作
- HTML 标记与 ng-init 中
- 获取 ng-init 和 ng-repeat 中的元素