関数 ParentCtrl($scope) {
// 一部の関数は、子スコープのデータ オブジェクトがまだ null かどうかをチェックします
}
関数 ChildCtrl($scope) {
$scope.data={};
$scope.func = function(){
$scope.data.x = 1;
}; };
jsFiddle: http://jsfiddle.net/JHwxP/74/
関数 ParentCtrl($scope) {
// 一部の関数は、子スコープのデータ オブジェクトがまだ null かどうかをチェックします
}
関数 ChildCtrl($scope) {
$scope.data={};
$scope.func = function(){
$scope.data.x = 1;
}; };
jsFiddle: http://jsfiddle.net/JHwxP/74/
ここで見られるようなイベントのシステムを使用できます: http://jsfiddle.net/patxy/RAVFM/
共有サービスを備えた 2 つのコントローラーがある場合は、次のように実行できます。
var myModule = angular.module('myModule', []);
myModule.factory('mySharedService', function($rootScope) {
var sharedService = {};
sharedService.message = '';
sharedService.prepForBroadcast = function(msg) {
this.message = msg;
this.broadcastItem();
};
sharedService.broadcastItem = function() {
$rootScope.$broadcast('handleBroadcast');
};
return sharedService;
});
function ControllerZero($scope, sharedService) {
$scope.handleClick = function(msg) {
sharedService.prepForBroadcast(msg);
};
$scope.$on('handleBroadcast', function() {
$scope.message = sharedService.message;
});
}
function ControllerOne($scope, sharedService) {
$scope.$on('handleBroadcast', function() {
$scope.message = 'ONE: ' + sharedService.message;
});
}
function ControllerTwo($scope, sharedService) {
$scope.$on('handleBroadcast', function() {
$scope.message = 'TWO: ' + sharedService.message;
});
}
ControllerZero.$inject = ['$scope', 'mySharedService'];
ControllerOne.$inject = ['$scope', 'mySharedService'];
ControllerTwo.$inject = ['$scope', 'mySharedService'];