类似于这样的情况
<div ng-controller="parentCtr">
<div ng-controller="childCtr1">
<div ng-controller="childCtr2">
</div>
</div>
</div>
这些控制器都是在一个module里,我需要的是把parentCtr里的变量传给childCtr2
然后在childCtr2中通过$on获取
HTML
<div ng-controller="ParentCtrl">
<button ng-click="click()">change</button>
<div ng-controller="ChildCtrl1">
<div ng-controller="ChildCtrl2">
</div>
</div>
</div>
SCRIPT
angular.module('myApp', [])
.controller('ParentCtrl', function ($scope) {
$scope.click = function () {
$scope.$broadcast('change', {name: 'xxx'});
}
})
.controller('ChildCtrl1', function ($scope) {
})
.controller('ChildCtrl2', function ($scope) {
$scope.$on('change', function (event, obj) {
console.log(obj);
});
});
SCOPE
Scope是继承的,如果只是单纯想获取父Scope的数据,这样就可以了
angular.module('myApp', [])
.controller('ParentCtrl', function ($scope) {
$scope.data=[1,2,3];
})
.controller('ChildCtrl1', function ($scope) {
})
.controller('ChildCtrl2', function ($scope) {
console.log($scope.data);
});
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。