Angular JS将msg广播到多个视图,包括模态窗口
Angular JS broadcast msg to multiple views including a modal window
我有一个服务,用于处理向需要它的控制器广播消息。
服务:
.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 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
主页中有一个AlertCtrl
实例,每当模式打开时都会创建另一个实例(添加控制台.log以验证这一点)。模型内的AlertCtrl
被实例化,并在事件广播后开始侦听。
您可以将参数传递给$broadcast方法,因此您可以执行以下操作: $rootScope.$broadcast('handleBroadcast', 'your message here');
在你的听众中:
$scope.$on('handleBroadcast', function(ev, arg){
$scope.msgs.push(msg);
});
看一看: http://docs.angularjs.org/api/ng.$rootScope.Scope#methods_$broadcast
相关文章:
- 如何使用javascript从主svg对象动态创建svg视图框
- 正在使用$location.path(.)路由ng视图
- angular.js没有'无法在PhoneGap中处理视图标记
- 如何包含特定于每个视图angularjs的javascript文件
- 通过在Dojo mobile ViewController.openExternalView中动态更改打开同一外部视图的
- Kendo:我该如何在树视图中创建一个递归的hieiarchy
- 包括用于facebook评论框的JavaScript SDK
- Ajax Live搜索发布到Laravel视图
- backbone.js无法渲染视图
- 角度 ui 视图(UI 路由器)未呈现模板 - 包括 plunker
- 包括 Rails 中特定视图的外部 JS
- Angularjs ng-include 不包括任何视图
- Dreamweaver CS6 视图包括
- Angular JS将msg广播到多个视图,包括模态窗口
- AngularJS$routeProvider不包括视图(未知提供程序)
- PUT 期间不包括视图模式可观察属性
- 包括刀片视图的基础上的HTML点击
- Backbone.js主从视图,导航问题(包括jsfiddle)
- 不包括“业务视图”;全景图时,请求谷歌地图API街景
- 如何创建具有重叠视图的旋转木马?[jsFiddle和ASCII艺术包括在内}