¿Cómo controlar las rutas de la página en el controlador?
-
21-12-2019 - |
Pregunta
Onsen UI es genial.Rapido y facil.Sin embargo, no hay mucha documentación para controlar la lógica Onsen en el controlador.
Como por ejemplo, quiero hacer un $location.path('/newpath') dentro de un controlador.¿Cómo se hace en Onsen?Intenté "ONS.Navigator.PushPage ('Parcials/ortatjob.html');" en mi función de controlador pero no funciona.¿Estamos limitados a hacer ng-click en Onsen para ir a otra página?
Gracias.
Solución
En Onsen UI 1.04, puede acceder al navegador desde el interior del controlador de la siguiente manera.
$rootScope.ons.navigator.pushPage('new_page.html');
Otra forma es
$rootScope.ons.$get('#navigator').pushPage(pagename);
dónde #navigator
es el id
de navegador te pones s.t.
<ons-navigator id="navigator" page="page1.html"></ons-navigator>
Este método puede elegir qué navegador utilizar.
La tercera vía es la que obtiene el alcance del navegador.Por ejemplo,
var element = document.querySelector( ".navigator-container");
var scope = angular.element( element ).scope();
scope.pushPage(pagename);
El nombre de la clase .navigator-container
es un nombre de clase incorporado de onsen ui navigator.Esto funciona bien incluso en onsen ui 1.0.
añadiendo:ejemplo de $rootScope
myapp.controller('myCtrl', function($scope, $rootScope) {
$scope.pushPage = function(pagename) {
$rootScope.ons.navigator.pushPage(pagename);
}
});