Indice de changement de AngularJS md-onglets ont aucun effet

Dans mon Angulaire de l'application, j'ai un md-onglets dont le md-sélectionné directive est lié à une propriété dans mon contrôleur. Je voudrais changer l'onglet actuel à celui dont l'indice est défini par une fonction appelée par ng-cliquez ailleurs dans mon template.

J'ai fait de cette façon:

<div ng-controller="TrackingCtrl" layout-fill>
   <md-content ng-if="isSmart" layout-fill>
      <md-tabs md-selected="selectedIndex" layout-fill>
         <md-tab>.........</md-tab>
         <md-tab>.........</md-tab>
         <md-tab>.........</md-tab>
         <md-tab>
            <md-tab-label>{{ 'tracking.positions.TITLE' | translate }}</md-tab-label>
            <md-tab-body>
                <md-tab-content layout-fill flex>
                    <button ng-click="map.panTo(getPosition());displayMap();"></button>
            </md-tab-body>
         </md-tab>
    </md-tabs>
 </md-content>
</div>

Dans mon contrôleur, j'ai :

  $scope.selectedIndex = 0;
  $scope.displayMap = function() {
      $scope.selectedIndex = 1;
  };

Mais il n'a aucun effet lorsque je clique sur mon bouton qui appelle displayMap();

J'ai inspecté le problème:

  • Lorsque j'ai mis $champ d'application.selectedIndex = 1; dans mon contrôleur, l'onglet par défaut est celui dont l'indice est de 1. OK
  • Lorsque j'ai mis md-selected="1" dans mon template, l'onglet par défaut est celui dont l'indice est de 1. OK
  • Lorsque j'ai mis un point d'arrêt dans mon code, et quand je clique sur mon bouton, displayMap() est appelée, et de portée.selectedIndex = 1; est exécuté. OK

Il semble que tout fonctionne bien... à l'exception de l'onglet ne change pas.

Je suis en cours d'exécution Angulaire Matériel 1.0.2

J'ai même utilisé $s'appliquent pour forcer la mise à jour (aucun effet) :

  $scope.selectedIndex = 0;
  $scope.displayMap = function () {
      $timeout(function () {
          if (!$scope.$$phase) {
              $scope.$apply(function () {
                  $scope.selectedIndex = 1;
              });
          }
      });
  };
FYI - $timeout par lui-même va déclencher $s'appliquent à l'interne . Ne pas répondre à la question ... juste de passage sur info
Proposer angulaire-matériel github issue tracker aussi. Beaucoup d'onglets questions
Oui, je vais vérifier cela

OriginalL'auteur Ben | 2016-01-21