如何在AngularJS中更新父作用域
How to update parent scope in AngularJS?
我试图使用两个解决方案从子控制器更新我的父范围,但我不能使它工作。apply()
不工作
HTML:
<div ng-controller="ControllerA">
<div ng-show="tab_selected == 1">Content1</div>
<div ng-show="tab_selected == 2">Content2</div>
<div ng-controller="ControllerB">
<span ng-click="updateScope()"></span>
</div>
</div>
JS:
app.controller('ControllerA', ['$scope',
function ($scope) {
$scope.tab_selected = 1;
}]);
app.controller('ControllerB', ['$scope',
function ($scope) {
$scope.updateScope = function(){
$scope.tab_selected = 2;
// $scope.apply(function(){ $scope.tab_selected = 2; });
}
}]);
不能更新父对象中的基本属性,只能更新对象属性。所以你需要使用:
$scope.someObject= {};
$scope.someObject.tab_selected= 2;
控制器有单独的作用域,但有几种方式来通信
- $广播事件到父范围
- 使用双向数据绑定服务,即http://plnkr.co/edit/Vqk1Fe?p=preview
- 具有范围继承,即http://plnkr.co/edit/7wcMnJ?p=preview
相关文章:
- 修改作用域变量后,未更新作用域绑定
- Angularjs没有'调用函数时不更新作用域
- 从指令更新作用域,并使用另一个指令进行监视
- 服务内部的数据更改不会更新作用域
- 通过指令更新作用域.最佳实践
- AngularJS从指令中更新作用域变量
- 在angular js中使用service更新作用域变量
- 从指令中调用控制器函数不会更新作用域
- 在指令控制器内部更新作用域
- AngularJS从服务模型中更新作用域
- 从承诺返回后更新作用域变量
- 为什么n't $digest在我的单元测试中更新作用域?
- 指令不会在父作用域的$http response之后更新作用域
- 动态更新文本框后更新作用域值
- 设置输入来更新作用域变量似乎不起作用
- Angular.js在变量改变后更新作用域
- Angular factory:在上传过程中使用进度更新作用域
- 如何从resolve方法内部更新作用域
- Angular ui-router $state.reload()无法在文件上传后更新作用域变量
- 如何在构造函数typescript中5秒后更新作用域值