In meiner Angular App habe ich eine md-tabs, deren md-selected Direktive an eine Eigenschaft in meinem Controller gebunden ist. Ich möchte die aktuelle Registerkarte zu der ändern, deren Index durch eine Funktion festgelegt wird, die durch einen ng-Klick irgendwo anders in meiner Vorlage aufgerufen wird.
Ich habe es so gemacht:
%Vor%In meinem Controller habe ich:
%Vor%Aber es hat überhaupt keine Wirkung, wenn ich auf meine Schaltfläche klicke, die displaymap ();
aufruftIch habe das Problem untersucht:
Es scheint alles funktioniert gut ... außer die Registerkarte ändert sich nicht.
Ich führe Angular Material 1.0.2
Ich habe sogar $ apply verwendet, um das Update zu erzwingen (kein Effekt):
%Vor%Ich habe mein Problem gelöst, das sicherlich durch ein Problem mit dem Oszilloskop verursacht wurde. Ich habe einfach den Controller als -Syntax verwendet und alle vorherigen Scope-Daten mit
deklariert %Vor%und mein Markup:
%Vor%Funktioniert jetzt perfekt. Ich denke, mein ng-if änderte meinen Umfang oder so.
Ich bin froh, dass Sie eine Problemumgehung für Ihr Problem gefunden haben. Um dieses Verhalten zunächst zu vermeiden, sollten Sie sich diese Stackoverflow-Diskussion ansehen
Da Ihre selectedIndex-Variable ein primitives Element enthält, wird mit jedem neuen Scope, das Sie bereits erwähnt haben, die Datenbindung zerstört, und Änderungen innerhalb des untergeordneten Bereichs haben keine Auswirkungen auf das "outside".
In deinem Fall benutze einfach ...
%Vor%... folgen Sie der Punktregel .
Vielleicht habe ich etwas über deine Frage missverstanden, aber das sollte funktionieren ...
Ich habe einen Plünderer erschaffen und ich kann dein Verhalten nicht reproduzieren, es funktioniert einfach gut.
Anzeigen :
%Vor%Controller :
%Vor%Könnten Sie das bitte überprüfen? Hoffe es hilft
Mit md-selected = 0 gehst du zum ersten Tab. Und md-selected = 1 zum zweiten Tab.
-Taste:
%Vor%Controller:
%Vor%Tags und Links javascript angularjs angularjs-scope angular-material