angularjs本地主控制器var没有使用rootscope更新

时间:2015-09-13 08:38:23

标签: javascript html angularjs

我正试图在我的ng-view之前显示错误(来自任何控制器)。但是当$ rootScope更新时,我的错误var不是。

index.html

<div id="header" ng-controller="HeaderCtrl as head" class="header">
   <div ng-include="'views/header.html'"></div>
</div>

<div class="container" ng-controller="MainCtrl as main">
   <div ng-show="main.error" class="alert alert-danger">{{main.error}}</div>
   <div ng-view=""></div>
</div>  

main.js

function MainCtrl($scope,$rootScope) {  
  var main=this;  
  main.error=$rootScope.error;  
}  

header.js

function HeaderCtrl($rootScope) {
  $rootScope.error = "NO ERROR";

  function login(){  
    $rootScope.error = "ERROR";
  }
}  

当它不在登录功能中时它没关系(我看得很清楚“NO ERROR”但是当我调用login()时,我可以看到$ rootScope.error已更新但不是main.error ??

1 个答案:

答案 0 :(得分:0)

我建议你不要做你现在正在做的事情,因为将$rootScope变量绑定到$scope变量实际上是多余的。就这样做,你的绑定会更少:

<div class="container" ng-controller="MainCtrl as main">
   <div ng-show="error" class="alert alert-danger">{{error}}</div>
   <div ng-view=""></div>
</div>  

function MainCtrl($scope) {  
  var main=this;
}