Frage

OnsenUI ist großartig.Schnell und einfach.Allerdings gibt es nicht viel Dokumentation zur Steuerung der Onsen-Logik im Controller.

Ich möchte zum Beispiel einen $location.path('/newpath') innerhalb eines Controllers ausführen.Wie wird es in Onsen gemacht?Ich habe "ons.navigator.pushPage ('partials/letztesjob.html') versucht;" in meiner Controller -Funktion, funktioniert aber nicht.Sind wir darauf beschränkt, in Onsen auf ng-click zu klicken, um zu einer anderen Seite zu gelangen?

Danke.

War es hilfreich?

Lösung

In Onsen UI 1.04 können Sie wie folgt vom Controller aus auf den Navigator zugreifen.

$rootScope.ons.navigator.pushPage('new_page.html');

Ein anderer Weg ist

$rootScope.ons.$get('#navigator').pushPage(pagename);

Wo #navigator ist der id des Navigators, den du auf s.t. gesetzt hast.

<ons-navigator id="navigator" page="page1.html"></ons-navigator> 

Mit dieser Methode können Sie auswählen, welchen Navigator Sie verwenden.

Der dritte Weg ist der, den Navigatorbereich zu erhalten.Zum Beispiel,

var element = document.querySelector( ".navigator-container");
var scope = angular.element( element ).scope();
scope.pushPage(pagename);

Der Klassenname .navigator-container ist ein integrierter Klassenname von Onsen UI Navigator.Das geht sogar in Onsen UI 1.0 gut.

Hinzufügen:Beispiel von $rootScope

myapp.controller('myCtrl', function($scope, $rootScope) {
  $scope.pushPage = function(pagename) {
    $rootScope.ons.navigator.pushPage(pagename);
  }
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top