Javascript Angularjs-从$rootscope设置视图对象

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

My angularjs webapp包含登录视图和主视图

登录后,我希望保存我的凭据,以便将来使用

为此,我将它们保存在$rootScope中

现在,在我的homeController中,我通过以下方式将它们设置为$scope:

$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)?