8

Mam zakładki początkowe z zakładkami w następującym formacie. (patrz plunker)zakładki początkowe kątowe - wybierz funkcję wywołaną w ładowaniu strony

Funkcja wyboru ma się uruchamiać po wybraniu zakładek. Ale dziwnie, po wczytaniu strony uruchamia się funkcja wyboru pierwszej karty. (Drukuje kartę wybrany Dynamiczny tytuł 1 onload ..)

"http://plnkr.co/edit/vyOOhCdIl7s1Wvou7Dr9?p=preview" 

angular.module('ui.bootstrap.demo', ['ui.bootstrap']); 
 
angular.module('ui.bootstrap.demo').controller('TabsDemoCtrl', function ($scope) { 
 
    $scope.tabs = [ 
 
    { title:'Dynamic Title 1', content:'Dynamic content 1' }, 
 
    { title:'Dynamic Title 2', content:'Dynamic content 2' }, 
 
    { title:'Dynamic Title 3', content:'Dynamic content 3' } 
 
    ]; 
 
    
 
    $scope.tabSelect = function(title){ 
 
    console.log("tab selected "+title); 
 
    }; 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<!doctype html> 
 
<html ng-app="ui.bootstrap.demo"> 
 
    <head> 
 
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.13/angular.js"></script> 
 
    <script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.13.0.js"></script> 
 
    <script src="example.js"></script> 
 
    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet"> 
 
    </head> 
 
    <body> 
 
    <div ng-controller="TabsDemoCtrl"> 
 
     <tabset> 
 
     <tab ng-repeat="tab in tabs" heading="{{tab.title}}" active="tab.active" disable="tab.disabled" select="tabSelect(tab.title)"> 
 
      {{tab.content}} 
 
     </tab> 
 
     </tabset> 
 
    </div> 
 
    </body> 
 
</html>

+3

[ 'select() (domyślne : null): Wyrażenie opcjonalne wywoływane, gdy karta jest aktywowana "] (https://angular-ui.github.io/bootstrap/#/tabs), więc ma to sens, podczas ładowania domyślnie aktywowana jest pierwsza karta i uruchamia się zdarzenie. – PSL

+0

jest jakiś sposób, że możemy tego uniknąć przy ładowaniu strony? – Sanath

+2

Przeglądając kod źródłowy kąta-ui wydaje się, że nie ma sposobu, aby to określić. Można jednak łatwo wykonać: 'var firstTime = true; $ scope.tabSelect = funkcja (tytuł) { if (firstTime) { firstTime = false; return; } console.log ("zakładka wybrana" + tytuł); }; ' – miensol

Odpowiedz

2

zmienić wybierz do NG-kliknij tak:

<tab ng-repeat="tab in tabs" heading="{{tab.title}}" active="tab.active" ng-click="tabSelect(tab.title)">