使用服务根据点击事件更新 DOM
Update the DOM based on click event using service
我正在尝试使用服务根据点击事件更新 DOM。
具体来说,我正在尝试使用 bootstrap 的警报在用户单击页面上的特定按钮时提醒他们。例如,我希望能够调用 notify.createNotification("Saved successfully")
,告诉用户他们已成功保存。
我正在使用 ui-router
并设法将通知抽象为(隔离范围)指令和随附的模板。当前 shows
通知已更新,在我的应用程序的头部(所有其他视图继承此视图)在 $scope.createNotification() 时(从点击事件中)。这是有效的,因为子视图继承了 $scope 属性。显然,这种对 $scope 继承的污染和滥用并不理想,因此我想将其全部移动到一个服务中。
我已经尝试使用工厂来更新 notification
对象,该对象包含警报的状态信息,即显示:true/false、文本等。问题在于工厂只是 returns 调用它的地方,我需要能够更新父级。
...我觉得我已经完成了 9/10 的工作,但最后的 1/10 真的让我感到困惑。
如有任何帮助,我们将不胜感激。
注意:我想我也在寻找 'best practices' 这里,我的意思是 $scope 污染有效,但它远非理想。谢谢
这可以使用 pub/sub 方法解决。
- 创建
NotificationService
用于发送通知。对于来电者,它看起来像 NotificationService.alert({text: '..', ...})
- 创建
<notification-area>
组件订阅 NotificationSerivce
并显示从任何地方发送的通知。
NotificationService
本身应该实现 pub/sub 接口。使用 EventEmitter
(如 this one)甚至 angular.element
的任何实现来提供 on(), off(), trigger()
方法。
我正在尝试使用服务根据点击事件更新 DOM。
具体来说,我正在尝试使用 bootstrap 的警报在用户单击页面上的特定按钮时提醒他们。例如,我希望能够调用 notify.createNotification("Saved successfully")
,告诉用户他们已成功保存。
我正在使用 ui-router
并设法将通知抽象为(隔离范围)指令和随附的模板。当前 shows
通知已更新,在我的应用程序的头部(所有其他视图继承此视图)在 $scope.createNotification() 时(从点击事件中)。这是有效的,因为子视图继承了 $scope 属性。显然,这种对 $scope 继承的污染和滥用并不理想,因此我想将其全部移动到一个服务中。
我已经尝试使用工厂来更新 notification
对象,该对象包含警报的状态信息,即显示:true/false、文本等。问题在于工厂只是 returns 调用它的地方,我需要能够更新父级。
...我觉得我已经完成了 9/10 的工作,但最后的 1/10 真的让我感到困惑。
如有任何帮助,我们将不胜感激。
注意:我想我也在寻找 'best practices' 这里,我的意思是 $scope 污染有效,但它远非理想。谢谢
这可以使用 pub/sub 方法解决。
- 创建
NotificationService
用于发送通知。对于来电者,它看起来像NotificationService.alert({text: '..', ...})
- 创建
<notification-area>
组件订阅NotificationSerivce
并显示从任何地方发送的通知。 NotificationService
本身应该实现 pub/sub 接口。使用EventEmitter
(如 this one)甚至angular.element
的任何实现来提供on(), off(), trigger()
方法。