2015-09-13 48 views
0

我想在我的ng-view之前顯示錯誤(來自任何控制器)。但是,當$ rootScope更新時,我的錯誤var不是。angularjs本地主控制器var沒有用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"; 
    } 
} 

時,它不是在登錄功能,它的確定(我明白了「NO ERROR 「但是當我調用login()時,我可以看到$ rootScope.error已更新,但不是main.error

+0

爲什麼你需要綁定$ rootScope.error到main.error?這是多餘的。 – Chrillewoodz

回答

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; 
} 
相關問題