Angularjs 处于相同状态的另一个模板中的访问范围
如何在处于相同状态的另一个模板中访问$scope? 在我下面的代码中,我想使用chart.html访问控制器网格中的函数Angularjs 处于相同状态的另一个模板中的访问范围,angularjs,angular-ui-router,Angularjs,Angular Ui Router,如何在处于相同状态的另一个模板中访问$scope? 在我下面的代码中,我想使用chart.html访问控制器网格中的函数 .state('demo.content', { url: '', views: { 'chart': { templateUrl: './App/chart.html', controller: 'C
.state('demo.content', {
url: '',
views: {
'chart': {
templateUrl: './App/chart.html',
controller: 'Chart'
},
'grid': {
templateUrl: './App/grid.html',
controller: 'Grid'
}
})
我建议不要直接调用另一个作用域中的函数。我建议使用$broadcast和$on机制,其中一个控制器广播另一个控制器可以订阅的消息 下面是一个例子:
var app = angular.module('myapp', []);
app.controller('controller1', ['$scope', '$rootScope', function ($scope, $rootScope) {
$scope.notify = function () {
$rootScope.$broadcast('click', 'heres the message');
};
}]).controller('controller2', ['$scope', '$rootScope', function ($scope, $rootScope) {
$scope.$on('click', function (event, data) {
$scope.message = data;
});
}]);
在这里用小提琴演奏:
文档如下:$rootScope.Scope
有一个实际的函数绑定'&'绑定,但它在指令中。比如说你会有这样的东西:
<div ng-controller='mycontroller'>
<div my-button-directive clickcallback='doSomething' />
</div>
然后在my button指令中,可以对clickcallback属性使用“&”绑定。这将允许您从指令中调用mycontroller范围中的doSomething。但正如我所说,我认为这种情况不适用于您。访问另一个作用域不是一种好的方式。特别是当作用域被隔离时。这就是为什么我建议您使用AngularJs事件