如何避免在组件模板上使用$ root?

时间:2017-01-15 15:53:35

标签: angularjs components angularjs-rootscope

我正在尝试检查用户是否具有component的{​​{1}}中的特定角色。

例如,这可能是我的会话服务:

template

然后我会在我的function Session() { 'ngInject'; var userRoles = {}; ... function hasRole(role) { if(userRoles[role]) { return true; } else { return false; } }; return { getUserRoles: getUserRoles, setUserRoles: setUserRoles, hasRole: hasRole }; }; 方法中为$ rootScope提供服务:

.run()

但似乎我无法从我的组件模板访问我的会话服务:

$rootScope.session = Session;

仅在我指定$ root服务时才有效:

<div ng-show="session.hasRole('TEST')">
   Hi, {{session.getUserRoles() | json}}
</div>

为什么?在使用angular <div ng-show="$root.session.hasRole('TEST')"> Hi, {{$root.session.getUserRoles() | json}} </div> 架构时,如何避免使用$root来访问我的$rootScope服务?

0 个答案:

没有答案