- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在使用 angular-js。我有一项服务需要在每次发生某事时触发事件。为此,我需要一个对象来充当 event aggregator
。
$rootScope
吗? $rootScope
,我如何确保没有事件名称冲突? $rootScope
是否有效? 最佳答案
我在平板电脑的 Web 项目中建模并实现了以下机制:
在您的服务中定义通知。我不想使用术语事件,因为我不希望我团队中的其他开发人员将它与DOM 事件 混淆。对于具有智能感知支持的 IDE 和调试,通知的半类型名称更容易。例如,我有一个 Device
服务,当平板电脑设备的方向发生变化时,该服务将$broadcast(Device.Notification.OrientationDidChange)
。
使用 Scope
对象来$broadcast
或 $emit
notifications,具体取决于您的需要。例如,
$rootScope.$broadcast(Device.Notification.OrientationDidChange)
。所以所有的监听器都可以在他们自己的范围内监听,而无需注入(inject) $rootScope
。scope.$broadcast(UI.Notification.NeedsLayout)
,其中 UI
是一个预定义的服务,用于保存与 UI 相关的常量, scope
是当前范围。rangeStart
值已更改的 slider 指令(除了常规双向绑定(bind)之外),我使用: scope.$emit(Slider.Notification.RangeStartDidChange)
,其中 scope
是当前范围。这种方法在小项目中有点冗长。您可能希望始终坚持使用 $rootScope.$emit(Notification)
,并让所有监听器执行 $rootScope.$on(Notification, callback)
以接收这些通知。
在某些情况下,您可能希望在集中式服务中定义这些通知,以便更轻松地避免名称冲突。它实际上基于您项目的命名约定。
这些通知的实现(实际值)可能会有所不同。我更喜欢使用 strings
。
使用 $broadcast
或 $emit
您实际上还可以将其他参数传递给监听器,例如,$broadcast(Notification, arg1, arg2)
... Angular's documentation很详细。
关于javascript - $rootScope 作为事件聚合器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17626586/
为什么在此示例中需要 $rootScope.$apply() 来使用页面上的 ng-hide 更新元素? 根据我的经验,每当我将 $scope.$apply() 放入 $scope.$watch 中时
$rootScope 和$rootScope.$root 有区别吗? 有什么区别 $rootScope.global.flag = true 和 $rootScope.$root.global.fla
我想在我的应用程序中共享这些功能,而我的工厂很少。问题是我必须在需要时在每个 Controller 中添加所有这些工厂。随着工厂和 Controller 数量的增加,这是一项乏味的任务! 因此我试图找
我在 $rootScope 上定义了一个方法 $rootScope.method = function(value){ // wanna give this value to `$scope.
我想知道我是否可以在 $rootScope.$on 函数中调用 $rootScope.$emit,原因是我有两个 Controller ctrl1.js 和`ctrl2.js,我想在我的 ctrl1.
谁能帮助理解 $rootScope.$new() 和 $rootScope.$new(true) 之间的区别?根据我的理解,它们应该是相同的,因为 $rootScope 没有父作用域。 最佳答案 $n
在广播和接收广播方面, Angular 1.2 rc2 和 Angular 1.2 之间有什么变化吗? 我有我认为是 $watch Controller 中的标准广播,即 $scope.$wa
我在我的应用程序中将 UI-router 用于嵌套 View ,但同时我想在路由更改时监听事件。在使用 UI-router routeChangeSuccess 之前,它触发得很好,但在 ui-rou
嗨,我想知道在性能方面什么更好。 假设我有一个广播东西的工厂: angular.module('core.foo') .factory('Foo', ['$rootScope',
我在 App.run 中定义了一些模型下面我在 Controller 中覆盖 someCtrl : App.run(['$rootScope', function($rootScope) { $r
我的应用出现以下错误 Error: [$rootScope:infdig] http://errors.angularjs.org/1.4.1/$rootScope/infdig?p0=10&p1=%
在一个 Controller 中,我这样做: $rootScope.$emit("newAction", {}); 在另一个 Controller 我做: $rootScope.$on('newAct
我想将数据从一个 Controller 发送到另一个 Controller 。其实我已经关注了这个link 我的第一个 Controller 是这样的: class ProductCtrl const
用户注销后,我需要清理我的 $rootScope。我试过 $rootScope.$destroy()但这并没有奏效。有没有办法遍历 $rootScope 中的所有值并删除它们或简单地重置它的方法? 最
抱歉,我的英语不好。我有 angularjs 应用程序,有很多页面和表单。对于任何页面,使用该页面的模型创建文件。示例: file userDict.js: $rootScope.dicts.user
当互联网不可用时,我想在每个页面上显示互联网不可用栏。 我正在使用 Ionic 框架,因此决定将代码保留在 menu.html 上 这是我的菜单 html 代码 Internet not availa
我在我的 Controller $rootScope.$on 函数中监听用户登录 $rootScope.$on('$firebaseSimpleLogin:login',functio
我在 Controller 中使用 $rootScope.$on 来监听我正在使用的模块(Angular-packery)发出的事件。它正在工作,它获取事件并且我可以在“args”上执行操作。但我想做
以下文件“有效”(即它不会引发任何错误): angular.module("modx", [], function($routeProvider) {
我有一个更新 $rootScope 的 Angular 服务。更新实际上工作正常,但它在控制台中抛出一个错误,这让我很担心。 app.service("scroll", function($rootS
我是一名优秀的程序员,十分优秀!