Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angularjs本地主控制器变量不使用rootscope更新_Javascript_Html_Angularjs - Fatal编程技术网

Javascript angularjs本地主控制器变量不使用rootscope更新

Javascript angularjs本地主控制器变量不使用rootscope更新,javascript,html,angularjs,Javascript,Html,Angularjs,我试图在ng视图之前显示错误(来自任何控制器)。但是,当$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-contr

我试图在ng视图之前显示错误(来自任何控制器)。但是,当$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>  
header.js

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

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

当它不在login函数中时就可以了(我很清楚地看到“无错误”,但当我调用login()时),我可以看到$rootScope.error得到了很好的更新,但不是main.error???

我建议您不要做现在正在做的事情,因为将
$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;
}  

{{error}}
函数MainCtrl($scope){
var main=这个;
}  

为什么需要将$rootScope.error绑定到main.error?这是多余的。
<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;
}