2016-08-22 107 views
2

讓我用下面的例子來說明這個問題:選項卡的內容重疊,其鄰居的選項卡的內容

我加例如3個標籤TAB1,TAB2和TAB3。現在,如果我刪除TAB2, 剩餘的選項卡將爲TAB1和TAB2(因爲TAB3將立即將TAB2放置爲 )。現在,當我添加一個新標籤時TAB3,我會同時看到2個標籤的內容 。其中一個選項卡是新創建的,第二個選項卡 恰好位於新創建的選項卡後面。

我通過檢查添加和刪除標籤時監視了HTML,並且還檢查了它們正在改變的數組索引值。

據我所知,原因可能是新添加的選項卡的內容選項卡實際上是靜態的「活動」類,它不會改變。 我想ui.bootstrap是造成這個問題。

我正在使用下面的代碼來製作我需要的標籤功能。 HTML代碼:

<uib-tabset active="activeForm"> 
    <uib-tab index="$index + 1" ng-repeat="tab in $scope.tabs" heading="{{tab.title}} {{$index+1}} " active="{{tab.active}}"> 
     {{tab.content}} 
     <button type="button" class="btn pull-left btn-primary" ng-click="removeTab($index);"> 
      Delete this wave 
     </button> 
    </uib-tab> 
    <button type="button" class="btn" ng-click="addNewTab();"> 
     + 
    </button> 
</uib-tabset> 

和JS代碼:

$scope.tabs = [ 
    { title:'TAB'+($scope.tabs.length+1), content:'This wave of contacts will be activated before all other waves of contacts.', active:true } 
]; 
$scope.addNewTab = function() { 
    $scope.tabs.push(
    { 
     title:'TAB'+($scope.tabs.length+1), content:'Content for tab new tab.' 
    }); 
    $scope.removeTab = function(index) { 
     if($scope.tabs.length>1) { 
      $scope.tabs.splice(index, 1); 
     } 
    }; 
} 

還有一兩件事,我完全陌生的兩個AngularJS和角度ui.bootstrap。所以,請把我當成初學者。

回答

0

必須,如果你正在使用$指數在邏輯(HTML)使用NG重複「軌道由$指數」

如NG重複=「標籤$ scope.tabs軌道由$指數「

+0

你是搖滾兄弟。現在我明白了我錯過了什麼。非常感謝 :) –