在angular ui-bootstrap模态控制器中更改$ rootScope

时间:2015-07-23 05:13:12

标签: angularjs

我在尝试更改模式控制器内的$ rootScope时遇到问题,rootcope更改但不会立即反映在视图中直到我刷新页面。 这是我的代码:

.controller('LoginController',function($scope,$rootScope,$modalInstance){

$scope.close = function(){
$rootScope.authentication = true;
}
});

以及在其他控制器中打开模态的代码:

    controller('myCtrl',function($scope,$modal){
    $scope.openLoginModal = function(){
     $scope.loginMdl=    $modal.open({
       templateUrl:'myview/myloginform.html',
       controller:'LoginController'
    });
   $scope.loginMdl.result.then(
     function(){},
     function(){}
  );
    }
    });

最后,简单的HTML打开登录模式;

<div ng-controller='myCtrl'>
<button ng-click='openLoginModal()'>Login </button>

    </div>
    <div>
<p ng-show='authentication'> USER HAS LOGGED IN</p>
</div>

正如您所看到的,我已经更改了&#34;身份验证&#34; $ rootScope的var,但更改不会立即反映在html视图中。 可以有一些建议请。

1 个答案:

答案 0 :(得分:1)

尝试

$rootScope.$apply();

要获得应用了rootcope的更改,您必须使用上面的代码。