Comment contrôler les itinéraires des pages dans le contrôleur ?
-
21-12-2019 - |
Question
OnsenUI est génial.Rapide et facile.Cependant, il n'existe pas beaucoup de documentation pour contrôler la logique Onsen dans le contrôleur.
Comme par exemple, je veux faire un $location.path('/newpath') à l'intérieur d'un contrôleur.Comment ça se passe à Onsen ?J'ai essayé "on.navigator.pushpage ('partials / le dernierJob.html');" dans ma fonction de contrôleur mais ne fonctionne pas.Sommes-nous limités à ng-click dans Onsen pour aller sur une autre page ?
Merci.
La solution
Dans Onsen UI 1.04, vous pouvez accéder au navigateur depuis l'intérieur du contrôleur comme suit.
$rootScope.ons.navigator.pushPage('new_page.html');
Une autre façon est
$rootScope.ons.$get('#navigator').pushPage(pagename);
où #navigator
est le id
du navigateur que vous mettez sur s.t.
<ons-navigator id="navigator" page="page1.html"></ons-navigator>
Cette méthode permet de choisir le navigateur que vous utilisez.
La troisième méthode est celle d'obtenir la portée du navigateur.Par exemple,
var element = document.querySelector( ".navigator-container");
var scope = angular.element( element ).scope();
scope.pushPage(pagename);
Le nom de la classe .navigator-container
est un nom de classe intégré du navigateur Onsen UI.Cela fonctionne bien même dans Onsen UI 1.0.
ajouter:exemple de $rootScope
myapp.controller('myCtrl', function($scope, $rootScope) {
$scope.pushPage = function(pagename) {
$rootScope.ons.navigator.pushPage(pagename);
}
});