当前位置: 首页 > 面试题库 >

如何在angular服务中使用$ on?

尤钱明
2023-03-14
问题内容

我已经能够让控制器将$ on侦听器与一起使用$scope.$on

但我看不到任何有关如何获取服务以监听事件的文档。

我试过了$rootScope.$on,但是只允许一个听众。我希望多个服务中的侦听器,无论其父控制器是否在作用域内。


问题答案:

经过一番试验后,事实证明,使用最少的代码即可将事件发送到服务。

如果有其他人遇到此问题,请遵循示例服务代码。

该样本在获得相应广播后将服务模型保存并还原到本地存储

app.factory('userService', ['$rootScope', function ($rootScope) {

    var service = {

        model: {
            name: '',
            email: ''
        },

        SaveState: function () {
            sessionStorage.userService = angular.toJson(service.model);
        },

        RestoreState: function () {
            service.model = angular.fromJson(sessionStorage.userService);
        }
    }

    $rootScope.$on("savestate", service.SaveState);
    $rootScope.$on("restorestate", service.RestoreState);

    return service;
}]);


 类似资料:
  • 我有一个在Liberty WebSphere Server 17.0.0.2上使用AngularJSP的项目,现在我必须对其进行升级。该项目需要升级到Angular 4 Liberty,我不知道如何正确地完成。 我现在尝试过的是: 使用角度 CLI 生成项目以生成分离文件夹。然后,我把这个分歧放在网络-INF上 提前感谢。

  • 问题内容: 我只是从Angular开始。阅读Google文档中的服务示例,我只是想知道为什么您会选择使用服务而不是将变量和函数正确地保留在控制器中? 在这种情况下,您何时选择使用服务? 问题答案: 我认为主要原因是: 在控制器之间持久并共享数据。 IE:您创建了一个从数据库中获取数据的服务,如果将其存储在控制器中,一旦更改为另一个控制器,数据将被丢弃(除非您将其存储在$ rootScope中,但这

  • 我有一个简单的服务: 我想测试一下。所以我创造了: 但是问题是,即使服务中的get方法返回了promise,那么函数中的回调也没有执行。我做错什么了吗?我在Jasmine中读到了call Fake方法,但老实说,我不认为使用它有什么意义。你能解释一下使用它有什么好处吗?顺便说一句,我有茉莉花2.0和最新的角模拟。

  • 我有一个链接生成器服务,它能够生成到特定内容类型的链接(用户的详细信息页面,内容项目的详细信息页面等)。 这个服务真的很好用,而且有同步功能: 现在,我必须为登录用户引入单独的路由,以便将更改为。 我需要添加到链接生成器服务中的唯一更改是检查并返回不同的路由URL。这不是一个问题,只要我的登录用户的信息将是同步可用的。但这不是... 我有一个返回一个承诺。第一次调用它时,它实际上发出了一个服务器请

  • 我读过,无融资创业时注入应该让所有孩子共享同一个实例,但是我的主组件和头组件(主应用程序包括头组件和路由器出口)各自获得了我的服务的单独实例。 我有一个FacebookService,用来调用facebook javascript api,还有一个UserService,使用FacebookService。这是我的引导程序: 从我的日志记录来看,引导调用似乎完成了,然后我看到在每个构造函数、Mai

  • 问题内容: 我正在尝试将Angular DataTables与服务器端处理选项一起使用,但是当我尝试在其“ Angular方式示例 ”中启用它时,仅呈现第一个请求,随后的请求(分页,排序,搜索)被发送,他们从不更新表。 问题答案: 经过一番挖掘,我发现了一个与用户无关的注释,建议您使用自己的函数覆盖该选项以处理服务器端调用。 这里的技巧是将一个空数组返回到DataTables回调,因此它不会使用其