2016-12-16 59 views
0

我們有一個可以動態加載的Accordion Group,當點擊標題時填充子項內容。當頭部被點擊時,動態手風琴組不會關閉其他人

這一切都有效,但我們似乎無法在單擊下一個項目時關閉其他項目。

我們有close-others="true"ng-click項目上的數據結構正確更新。

任何幫助?

這裏的HTML

<accordion close-others="true" class="accordion"> 
    <accordion-group heading="Team {{$index + 1}}" 
     ng-click="TabAction(tab.TeamRef, $index)" 
     ng-repeat="tab in Tabs" is-open="tab.IsOpen"> 
     <div ng-repeat="t in tab.Team track by $index" 
      class="mf-custom-list-item"> 
     </div> 
    </div> 
    </accordion-group> 
</accordion> 

而這裏的On Click事件管理tab.IsOpen

$scope.TabAction = function (teamref, indx) { 
    let TabIndex = $scope.TabIndex; 
    if ($scope.Tabs[TabIndex].IsOpen && (TabIndex = indx)) { 
     $scope.Tabs[TabIndex].IsOpen = false; 
    } else { 
     // Only open a tab if it is different to that already open 
     $scope.Tabs[indx].IsOpen  = true; 
     $scope.Tabs[TabIndex].IsOpen = false; 
     BidService.LoadBidTeam(teamref, indx, $scope); 
    } 
    $scope.TabIndex        = indx; 
    $rootScope.app.appstate.Bid.Summary.TabIndex = indx; 
}; 

回答

0

那麼你可以像這樣

$scope.TabAction = function (teamref, indx) { 
     //close all tabs first 
     for(var i = 0, l = $scope.Tabs.length; i < l; i++){ 
      $scope.Tabs[i].IsOpen = false; 
     } 
     let TabIndex = $scope.TabIndex; 

     $scope.Tabs[indx].IsOpen  = true; 

     BidService.LoadBidTeam(teamref, indx, $scope); 

     $scope.TabIndex        = indx; 
     $rootScope.app.appstate.Bid.Summary.TabIndex = indx; 
    }; 
+0

這也是行不通的。同樣,IsOpen的設置正確響應,但似乎前端(html)不響應IsOpen更改 –

相關問題