我有一项服务,用于处理向需要它的控制器广播的消息。
服务:
.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;
});
cntl:
function AlertCtrl($scope, mySharedService) {
$scope.msgs = [];
$scope.$on('handleBroadcast', function() {
$scope.msgs.push(mySharedService.message);
});
$scope.closeAlert = function(index) {
$scope.msgs.splice(index, 1);
};
}
html:
<div ng-controller="AlertCtrl">
<alert ng-repeat="msg in msgs" type="msg.type" close="closeAlert($index)">{{msg.msg}}</alert>
</div>
因此,在我放置 HTML 片段的任何地方,消息都会按预期显示,除非它位于模式窗口中。
我的问题是:如何让广播消息显示在模式窗口中?
这是 plnkr:http ://plnkr.co/edit/l6ohBYRBMftpfxiKXvLr?p=preview