Javascript Angularjs-从$rootscope设置视图对象
My angularjs webapp包含登录视图和主视图 登录后,我希望保存我的凭据,以便将来使用 为此,我将它们保存在$rootScope中 现在,在我的homeController中,我通过以下方式将它们设置为$scope:Javascript Angularjs-从$rootscope设置视图对象,javascript,angularjs,Javascript,Angularjs,My angularjs webapp包含登录视图和主视图 登录后,我希望保存我的凭据,以便将来使用 为此,我将它们保存在$rootScope中 现在,在我的homeController中,我通过以下方式将它们设置为$scope: $scope.user = $rootScope.user; $scope.password = $rootScope.password; 在我的HomeController中,值被正确地传递 当我尝试使用{{using}}将$scope.user的值设置为我的DO
$scope.user = $rootScope.user;
$scope.password = $rootScope.password;
在我的HomeController中,值被正确地传递
当我尝试使用{{using}}将$scope.user的值设置为我的DOM时,它似乎不起作用
这是家庭控制器
'use strict';
angular.module('Home')
.controller('HomeController', ['$scope', '$rootScope',
function ($scope, $rootScope) {
$scope.user = $rootScope.username;
}]);
这是我的家庭视图:
<div ng-controller="HomeController as HomeCtrl">
<h1></h1>
<p>{{user}}</p>
<p><a href="#/login">Logout</a></p>
</div>
{{user}}
我做错了什么?
很抱歉出现这样的问题,请随意添加有关如何管理此类场景的更多信息。请尝试
{{HomeCtrl.user}
您正在为控制器使用别名,如图所示,您需要包括该别名以引用其作用域
编辑:因为这已被接受,我将从聊天中链接。您不需要
$scope.user=$rootScope.user
。由于$scope
是$rootScope
的子项,通过继承,用户
变量将自动在所有$scope
中可用。我建议将登录数据保存在服务组件中,而不是保存在范围中。所以你可以把它们注射到你需要的任何地方。请看这里的示例,不需要将值从$rootScope复制到本地$scope,您可以在html sinde$scope的继承自父$scope中使用它们。我不同意。最好调用$rootScope,因为没有任何东西可以保证在您的作用域和$rootScope之间永远不会有另一个名为“user”的变量。此外,{{}不会为DOM设置值,它告诉angular,在当前作用域中计算{}内的表达式,并用结果替换{}(因此,它不仅仅是放置一个值)。不要太在意,只是想澄清一下。没错,@eeadev为什么要为控制器使用别名?这本身不是一个“坏”主意,但在这里没有必要(这可能会让你困惑).@JeremyThille,事实上没有任何理由moment@K.Gkinis,谢谢,但它仍然不会改变我的视角。还有,你有什么工具可以检查角度镜吗?比如巴塔朗(chrome)?