Angular变量仅在视图中可用,而不是控制器

时间:2016-09-28 21:08:04

标签: angularjs

我正在使用微软的adal.js for angular,它通过漫长而复杂的身份验证链记录人员并且只是密切相关,因为当登录过程完成后,adal会将用户的信息提供给视图:

<p>
    {{userInfo.userName}}
</p>

这有效,但我不知道如何。

我正在使用controler-as语法,所以如果我想在我的控制器中使用$scope,我必须专门注入它,否则它不适用于所述控制器。

$scope未被注入控制器。

请注意,如果控制器没有注入$scope,视图如何获得$scope变量?

感谢。

为澄清而编辑。我希望这个问题现在更有意义。

1 个答案:

答案 0 :(得分:0)

看起来adal.js库在rootScope上为您管理userInfo对象。不幸的是,这意味着如果你想在控制器中访问它,你必须将一个范围($ scope或$ rootScope)注入你的控制器才能访问它。

视图始终只能访问作用域上的对象。为了使视图能够访问某些内容,必须将其附加到视图的范围。我猜测角度开发人员使用语法{{ userInfo.userName }}而不是{{ $scope.userInfo.userName }},因为上述限制(将$ scope放在一边是多余的)

如果您想避免将示波器注入控制器,可以创建一个注入$ rootScope的工厂,并提供访问所需内容的方法。