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.

¿Fue útil?

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);
  }
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top