2015-10-16 118 views
0

我有一個像下面的網站設置。當點擊Button C時,它必須更改myClass值。Ui路由器嵌套視圖與改變ng級

類的index.html有:myClass = "container gnc1"

需要的值,當點擊Button CmyClass = "container"

<body ui-view="viewA"> //firtsCtrl 
    <div ng-class="myClass"> 
    <div ui-view="viewC"> 
    <div ui-view="viewB"> 

     <a ui-sref="B">Button B</a> //Loads the B.html to where viewB is. secondCtrl 


     <a ui-sref="C" ng-click="removeClass()">Button C</a> //Loads the C.html where viewC is. thirdCtrl 


</div> 

</div> 

這裏是我的代碼:

firstCtrl:

.controller('indexCtrl', function($scope, MY) { 
     $scope.myClass = ["container","gnc1"]; 
     $scope.removeClass = function() { 
     $scope.myClass.splice(1, 2); 
} 
}) 

但是這沒有奏效。當我點擊Button C「myClass」值變空並且div沒有任何課程時。

+0

怎麼樣用$試圖scope.myClass = $ scope.myClass [0];在刪除類函數裏面? – MaheshKumar

回答

1

angular十歲上下的方式做,這是不斷變化的類與$scope變量綁定,所以你可以把它從你的控制器改變,如果你還需要共享你的控制器之間的數據,你應該使用一個service,怎麼看在這裏做到這一點:How to communicate between directive (tree component) and any other controller or directive in AngularJS app?

<div ng-class="{'gnc1': yourVariable}" class="container"> 
    <div ui-view="viewC"> 
    <div ui-view="viewB"> 
     <a ui-sref="B">Button B</a> 
     <a ui-sref="C" ng-click="removeClass()">Button C</a> 
    </div> 
</div> 

而且您的控制器上:

.controller('indexCtrl', function($scope, MY) { 
     $scope.yourVariable = true; 
     $scope.removeClass = function() { 
      $scope.yourVariable = false; 
     } 
}) 
+0

好的這項工作。很好的工作。謝謝。 – Nasuh