我试图在我的ng-view之前显示错误(来自任何控制器)。但是当$rootScope很好地更新时,我的错误变量不是。
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";
}
}
当它不在登录函数中是可以的(我看到很好"没有错误",但当我调用login()时,我可以看到$rootScope。错误很好地更新了,但不是主要的。错误? ?
我建议你不要做你正在做的事情,因为将$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;
}