Angular使服务可从任何地方访问

马克·拉斯穆森

我具有用于检查是否允许我的用户查看我的应用程序中的内容的服务。

我这样使用它:

<tab ng-controller="LibraryRTLController" ng-if="authFactory.hasFeature('ReadyToLearn')">

但是,它似乎无法正常工作,因为我将不得不在似乎多余的每个控制器中将其初始化。

所以我的问题是:是否有某种方式可以全局使用服务?

请注意,由于某些原因我无法在这里开始解释,我必须使用它,ng-if所以属性指令对我没有帮助!

更新

所以我把它添加到我的运行功能:

angular.module('app')
.run(function ($rootScope, AuthService, authFactory, $state) {
    $rootScope.authFactory = authFactory;
    $rootScope.$on('$stateChangeStart', function (event, next, toParams) {
        $state.newState = next;
        var authorizedRoles = next.data.authorizedRoles;
        if (!AuthService.isAuthorized(authorizedRoles)) {
            event.preventDefault();
            if (AuthService.isAuthenticated()) {
                // user is not allowed
            } else {
                // user is not logged in
                window.location.href = "http://" + window.location.hostname
            }
        }
    });
})

调试时,我能够看到它实际上是在正确设置变量。

在我的服务中,我创建了一个仅会发出警报的函数:

function doesWork ()
{
    alert('true!');
}

现在回到我的html中,我有:

<tab ng-controller="LibraryRTLController" ng-init="authFactory.doesWork()">

但是没有任何结果吗?

dfsq

有什么办法可以在全球范围内使用服务吗?

您可以简单地将service公开为$rootScope属性,这样它就可以在每个模板中使用:

appModule.run(['$rootScope', 'authFactory', function($rootScope, authFactory) {
  $rootScope.authFactory = authFactory;
}]);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular使服务可从任何地方访问

来自分类Dev

如何从任何地方访问Kubernetes上安装的服务?

来自分类Dev

使用未在任何地方注入的 angular 服务

来自分类Dev

SSH端口转发可从任何地方访问我的家用计算机

来自分类Dev

将 Apache2 设置为可从任何地方访问

来自分类Dev

如何从世界上任何地方访问我的ubuntu服务器?

来自分类Dev

从任何地方访问<link>,<script>,<img>和<a>

来自分类Dev

如何从任何地方访问OneNote笔记本?

来自分类Dev

从Java中的任何地方访问方法

来自分类Dev

如何从任何地方访问Zoo组件数据

来自分类Dev

从任何地方访问组合框值

来自分类Dev

如何加载图像并从任何地方访问它?

来自分类Dev

如何从任何地方关闭Angular UI Modal

来自分类Dev

UISplitViewController可从任何地方平移到主视图

来自分类Dev

使用 gcloud 上的虚拟机作为中介从任何地方访问本地服务器

来自分类Dev

从任何地方滚动Div

来自分类Dev

任何地方的“ if”开关列表?

来自分类Dev

单击框内任何地方,关闭

来自分类Dev

拖放图像到任何地方

来自分类Dev

单击任何地方回家?

来自分类Dev

任何地方的“ if”开关列表?

来自分类Dev

从任何地方滚动Div

来自分类Dev

从任何地方运行Python脚本

来自分类Dev

从任何地方进行谷歌查询

来自分类Dev

Libgdx点击(触摸)任何地方

来自分类Dev

Context API 从任何地方消费

来自分类Dev

关闭任何地方 sldenav 覆盖

来自分类Dev

可以从任何地方访问的android中的方法?类似于VB中的模块

来自分类Dev

在实体存储库或任何地方访问Symfony Config参数