私は$スコープを使用しています$ $ rootScopeをトリガするために、私のListControllerで発光$メインコントローラでのイベントに(1.3角度):。。なぜrootscope.onがトリガーされないのですか?
(function() {
'use strict';
angular
.module('mymodule.faultlist')
.controller('MainController', ['$rootScope', function ($rootScope) {
$rootScope.$on('newViewLoaded', function (event, metadata) {
$rootScope.metadata = metadata;
console.log('hello metacontroller metadata', metadata);
});
}])
.controller('ListController', ['faultlistservice', 'faultListConstants', '$scope', '$timeout', '$rootScope',
function (faultlistservice, faultListConstants, $scope, $timeout, $rootScope) {
$timeout(function() {
$scope.$emit('newViewLoaded', {
'title': faultListConstants.meta.title,
'description': faultListConstants.meta.description
});
}, 100);
}]);
})();
これはindex.htmlには、おおよそ次のようになります。
.
.
<head ng-controller="MainController">
<div class="container main-content" ui-view >
</div>
..
これはトリガーされません。私は$ rootScope。$をブロック上でListControllerに移動してみました。そして、$ rootScope。$ onがトリガーされました。 MainControllerでこれが機能しないのはなぜですか?またはこれを実装するより良い方法はありますか?
@TheHeadRush同じ問題ですね!!! –
ListControllerならMainControllerの親ですか?あなたはHTMLを共有できますか? –
はいMainControllerは先頭に定義されています。つまり、headタグで定義されています。 ListControllerは、ui-view(ui-router)内にあります。 MainControllerはstateproviderで定義されていません。 –