Javascript Angularjs 1.3.15-在承诺返回后更新$scope

Javascript Angularjs 1.3.15-在承诺返回后更新$scope,javascript,html,angularjs,Javascript,Html,Angularjs,我正在学习angularjs,并尝试在登录后用用户名更新导航栏,但用户名没有出现。以下是我遵循的过程: 用户成功登录 在登录承诺中的“then”之后(确保承诺已返回),通过返回用户配置文件的工厂获取用户配置文件 获取用户配置文件“成功”后,将配置文件保存到$scope.user,以便更新DOM 以下是导航栏的HTML(不确定是否重要,但使用ng include on page load将其放入index.HTML中): HTML from index.HTML <div id="wrapp

我正在学习angularjs,并尝试在登录后用用户名更新导航栏,但用户名没有出现。以下是我遵循的过程:

  • 用户成功登录
  • 在登录承诺中的“then”之后(确保承诺已返回),通过返回用户配置文件的工厂获取用户配置文件
  • 获取用户配置文件“成功”后,将配置文件保存到$scope.user,以便更新DOM
  • 以下是导航栏的HTML(不确定是否重要,但使用ng include on page load将其放入index.HTML中):

    HTML from index.HTML

    <div id="wrapper">
            <div ng-include='"templates/navigation.html"'></div>
    
            <div ng-view></div>
    
    </div>
    <!-- /#wrapper -->
    

    
    
    问题是导航栏中的user.firstName永远不会更新为用户名。我错过什么了吗


    谢谢你的帮助

    Account.getProfile()返回什么?是有角度的承诺还是角度框架之外的东西? 也许您应该将代码包装在
    $apply
    范围内:

    Account.getProfile()
        .success(function(obj){
            $scope.$apply(function() {
                $scope.user = obj;
                console.log('User: ' + 
                $scope.user.firstName);  //This Works! But user.firstName in HTML is not updated
            });
        });
    

    我认为您的html中缺少了结束标记,而不是所示文本末尾的“”html@Dola-更新。由于复制和粘贴而导致错误。does
    $scope.user=[]真的需要吗?登录后是否有url/状态重定向?如果是这样,这些数据就会消失。@YOU-谢谢。我用index.html的基本内容更新了这个问题,也许这能更好地解释问题。是的,页面使用ng视图重定向到远离登录的位置,但是nav位于不同的控制器上。导航到其他页面时,menuController中的其他功能也会起作用。例如,有一个注销按钮(为了简洁而删除)调用ng click=“logout()”,它工作正常。谢谢。我试过这个,但不幸的是,它不起作用。我怀疑@YOU在重定向时丢失数据是正确的(尽管我似乎无法用console.log证明这一点)。。。
    
    <div id="wrapper">
            <div ng-include='"templates/navigation.html"'></div>
    
            <div ng-view></div>
    
    </div>
    <!-- /#wrapper -->
    
    Account.getProfile()
        .success(function(obj){
            $scope.$apply(function() {
                $scope.user = obj;
                console.log('User: ' + 
                $scope.user.firstName);  //This Works! But user.firstName in HTML is not updated
            });
        });