Pergunta

OnsenUI é ótimo.Rápido e fácil.No entanto, não há muita documentação para controlar a lógica Onsen no controlador.

Por exemplo, quero fazer um $location.path('/newpath') dentro de um controlador.Como é feito em Onsen?Eu tentei "ons.navigator.pushpage ('parciais/mais lastjob.html');" Na minha função do controlador, mas não funciona.Estamos limitados a ng-click no Onsen para ir para outra página?

Obrigado.

Foi útil?

Solução

No Onsen UI 1.04, você pode acessar o navegador de dentro do controlador da seguinte maneira.

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

Outra maneira é

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

onde #navigator é o id do navegador que você colocou em s.t.

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

Este método pode escolher qual navegador você usa.

A terceira forma é a obtenção do escopo do navegador.Por exemplo,

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

O nome da classe .navigator-container é um nome de classe integrado do onsen ui navigator.Isso funciona bem mesmo no onsen ui 1.0.

adicionando:exemplo de $rootScope

myapp.controller('myCtrl', function($scope, $rootScope) {
  $scope.pushPage = function(pagename) {
    $rootScope.ons.navigator.pushPage(pagename);
  }
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top