Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用服务基于单击事件更新DOM_Javascript_Angularjs_Twitter Bootstrap_Mean Stack - Fatal编程技术网

Javascript 使用服务基于单击事件更新DOM

Javascript 使用服务基于单击事件更新DOM,javascript,angularjs,twitter-bootstrap,mean-stack,Javascript,Angularjs,Twitter Bootstrap,Mean Stack,我正试图通过使用一个服务,根据一个点击事件更新DOM 具体来说,我尝试使用引导的警报来提醒用户单击页面上的特定按钮。例如,我希望能够调用notify.createNotification(“成功保存”)来告诉用户他们已成功保存 我正在使用ui路由器,并已设法将通知抽象为(隔离范围)指令和附带的模板。当前的通知在$scope.createNotification()上(从单击事件中)显示在我的应用程序头部(所有其他视图继承此视图)的更新的。这是因为子视图继承了$scope属性。显然,尽管$scop

我正试图通过使用一个服务,根据一个点击事件更新DOM

具体来说,我尝试使用引导的警报来提醒用户单击页面上的特定按钮。例如,我希望能够调用
notify.createNotification(“成功保存”)
来告诉用户他们已成功保存

我正在使用
ui路由器
,并已设法将通知抽象为(隔离范围)指令和附带的模板。当前
的通知在$scope.createNotification()上(从单击事件中)显示在我的应用程序头部(所有其他视图继承此视图)的更新的
。这是因为子视图继承了$scope属性。显然,尽管$scope继承的这种污染和滥用并不理想,所以我想将其全部转移到一个服务中

我已经尝试使用工厂来更新
通知
对象,该对象包含警报的状态信息,即显示:真/假、文本等。工厂的问题是它只返回调用它的位置,我需要能够更新父对象

…我觉得我已经完成了这方面工作的9/10,但最后的1/10真的让我困惑

任何帮助都将不胜感激


注:我想我也在寻找一个“最佳实践”,我的意思是$scope污染工程,但它远不是理想的。谢谢

这可以通过发布/订阅方法解决

  • 创建用于发送通知的通知服务。对于调用者,它看起来像是
    NotificationService.alert({text:'..',…})
  • 创建订阅
    NotificationSerivce
    并显示从任何地方发送的通知的
    组件
  • NotificationService
    本身应该实现发布/订阅接口。使用
    EventEmitter
    (类似)甚至
    angular.element
    的任何实现来提供
    on()、off()、trigger()
    方法

  • 您能否发布一个工厂、指令和控制器的示例,从中调用通知服务?从描述中不清楚您做错了什么您可以发布一些示例javascript以引起更多关注这正是我想要的,我不确定EventEmitter是否非常必要(或者我可能误解了这一点),但其他方面,一个具有发布/订阅方式的服务正是我想要的