2015-04-01 203 views
1

我將一個函數掛鉤到一個選項卡上,點擊以調用服務器的某些數據。當我點擊該特定標籤時,我會觸發它,但是我希望它擺脫那個已經在該標籤上的人的實例並點擊它 - 並且調用服務器再次觸發(不需要)。我正在使用angular + angular-bootstrap-ui。Angular + bootstrap-ui,檢查當前選項卡是否已經激活

因此,我試圖掛鉤功能在選項卡本身,以檢查是否已經活躍,但似乎一旦ng點擊它被解僱,它已被設置爲活動。所以無論何時點擊它,它都會返回活動狀態。我需要某種方法來檢查我是否已經在該選項卡上。這是我試過

<tabset> 
{{tabs.active}} 
    <tab heading="Tree" > 

    </tab> 
    <tab heading="XML" active="tabs.active" ng-click="checkTab(tabs.active)"> 


    </tab> 
</tabset> 

,然後在控制器

$scope.checkTab = function(check){ 
     console.log(check); 

     } 

因此,不管是什麼,因爲它似乎是。主動點擊觸發之前設置爲true,這將始終返回true。有沒有辦法解決?謝謝!

更新:小提琴 - https://jsfiddle.net/7ognp2nj/2/

+0

任何小提琴看到的代碼? – Shaxrillo 2015-04-01 17:16:38

+0

@JhonSmith補充說。謝謝。 – ajmajmajma 2015-04-01 17:25:46

回答

4

我會建議使用的select代替ng-click。類似這樣的:

<tab heading="Tree" select="checkTab('tab 1 selected')"> 
     tab1 
    </tab> 
    <tab heading="XML" select="checkTab('tab 2 selected')"> 
     tab2 
    </tab> 

當您點擊活動選項卡時,CheckTab將不會被調用。它在您點擊一個不活動的選項卡時運行。當第一次顯示標籤時,它將被執行一次而不點擊。但它看起來像想要的行爲。

+0

工作很好,謝謝! – ajmajmajma 2015-04-01 20:41:36

+0

如何以編程方式激活選項卡而不使用ng-repeat? – 2015-12-12 12:51:36