Change index von AngularJS md-Tabletten haben überhaupt keine Wirkung

In meinem Angular app, ich habe einen md-Registerkarten, deren md-ausgewählte Richtlinie ist gebunden an eine Eigenschaft in meinem controller. Ich möchte zum wechseln der aktuellen Registerkarte zu der einen, deren index von einer Funktion namens von ng-klicken Sie irgendwo in meinem template.

Habe ich es auf diese Weise:

<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>

In meinem controller habe ich :

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

Aber es hat überhaupt keine Wirkung wenn ich auf meine Taste, die Anrufe displayMap();

Habe ich überprüft, das problem:

  • Wenn ich den $scope.selectedIndex = 1; in meinem controller, der Standard-Registerkarte ist der eine, dessen index 1 ist. OK
  • Wenn ich den md-selected="1" in meinem template, die Standard-tab ist derjenige, dessen index 1 ist. OK
  • Wenn ich einen Haltepunkt in meinem code, und wenn ich auf meine Schaltfläche, displayMap() aufgerufen wird, und $scope.selectedIndex = 1; ausgeführt wird. OK

Es scheint, funktioniert alles einwandfrei... außer die Registerkarte nicht ändern.

Ich bin mit Winkel-Material 1.0.2

Ich auch benutzt $gelten für "force update" (kein Effekt) :

  $scope.selectedIndex = 0;
  $scope.displayMap = function () {
      $timeout(function () {
          if (!$scope.$$phase) {
              $scope.$apply(function () {
                  $scope.selectedIndex = 1;
              });
          }
      });
  };
  • FYI - $timeout von selbst löst $gelten intern . Beantwortet nicht die Frage ... nur auf der Durchreise auf info
  • Schlage vor, check-in-eckig-material github issue-tracker auch. Vielen tabs Probleme gibt
  • Ja, ich will check this out
InformationsquelleAutor Ben | 2016-01-21
Schreibe einen Kommentar