2014-11-13 18 views
0

我有一個非常簡單的任務。建立一個清單,突出顯示活動項目。在初始加載期間遇到ng級的問題

使用ng-class並在範圍中設置當前選定的項目可以在點擊上工作,但不是在初始階段。

我在這裏忽略了什麼?這是數據。

$scope.adminTabs = [{"name": "Agent"}, 
      {"name": "Agent Queue"}, 
      {"name": "Skills"} 
      ] 

,這裏是在控制器中點擊與設定的初始值一起:

$scope.adminTabs = adminInfo.adminTabs; 
    //Default 
    $scope.activeAdminTab = $scope.adminTabs[0].name; 
    $scope.loadAdminTab = function(){ 
      $scope.activeAdminTab = this.tab.name; 

    } 

,最後是NG級指令本身在行動

<ul> 
        <li data-ng-click="loadAdminTab()" 
         data-ng-repeat="tab in adminTabs" 
         data-ng-model = "admin.selectedTab" 
         data-ng-class="tab.name == activeAdminTab ? 'selected' : '' ">{{tab.name}}</li> 
       </ul> 

問題是,第一項從未設置爲使用「selected」類,儘管驅動它的scope變量的設置是正確的。

回答

1

這不是一個答案,所以請不要接受它或投票。只有在這裏,因爲我創造了一個代碼片段顯示的代碼工作:

angular.module('MyModule', []) 
 

 
.controller('MyController', function($scope) { 
 

 
    $scope.adminTabs = [{"name": "Agent"}, 
 
    {"name": "Agent Queue"}, 
 
    {"name": "Skills"} 
 
    ]; 
 
    
 
    $scope.activeAdminTab = $scope.adminTabs[0].name; 
 
    
 
    $scope.loadAdminTab = function(){ 
 
    $scope.activeAdminTab = this.tab.name; 
 
    } 
 
});
.selected { 
 
    color: red 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app='MyModule' ng-controller='MyController'> 
 
    <ul> 
 
    <li data-ng-click="loadAdminTab()" 
 
     data-ng-repeat="tab in adminTabs" 
 
     data-ng-model = "admin.selectedTab" 
 
     data-ng-class="tab.name == activeAdminTab ? 'selected' : '' ">{{tab.name}}</li> 
 
    </ul> 
 
</div>

+0

總得有些事情要在這裏進行。我有一個ng-if的div來查找那個selectedTab,它工作得很好,只有標籤本身沒有突出顯示。 – user3448641

+0

如果你看看dom檢查員中的李,你能看到class ='selected'嗎?也可能值得檢查CSS是否正確包含--DOM檢查員還應該顯示正在應用的樣式。 –

+0

是啊,除非點擊,否則不會在檢查器中添加類。 – user3448641

0

我的猜測是在NG-重複的問題瓦特/範圍。

嘗試改變:

$scope.activeAdminTab = $scope.adminTabs[0].name; 

data-ng-class="tab.name == activeAdminTab..." 

要:

$scope.obj = {}; 
$scope.obj.activeAdminTab = $scope.adminTabs[0].name; 

data-ng-class="tab.name == obj.activeAdminTab..." 

尚未測試,但這是我遇到的具有角度ng-repeat範圍的常見問題;解決方案可能適合你。

+0

很希望這會起作用,但顯然使用原始對象不是問題。它只是不喜歡我以某種原因設置默認值。 – user3448641