OnsenUI 很棒。快速简便。但是,在 Controller 中控制 Onsen 逻辑的文档并不多。

例如,我想在 Controller 内执行 $location.path('/newpath') 。温泉是怎么做的?我试过“ons.navigator.pushPage('partials/latestjob.html');”在我的 Controller 功能中,但不起作用。我们是否仅限于在 Onsen 中单击以转到另一个页面?

谢谢。

最佳答案

在 Onsen UI 1.04 中,您可以从 Controller 内部访问导航器,如下所示。

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

另一种方式是
$rootScope.ons.$get('#navigator').pushPage(pagename);

其中 #navigator 是您放在 s.t. 上的导航器的 id
<ons-navigator id="navigator" page="page1.html"></ons-navigator>

此方法可以选择您使用的导航器。

第三种方式是获取导航器作用域。例如,
var element = document.querySelector( ".navigator-container");
var scope = angular.element( element ).scope();
scope.pushPage(pagename);

类名 .navigator-container 是 onsen ui navigator 的内置类名。
即使在 onsen ui 1.0 中这也很顺利。

添加:$rootScope 示例
myapp.controller('myCtrl', function($scope, $rootScope) {
  $scope.pushPage = function(pagename) {
    $rootScope.ons.navigator.pushPage(pagename);
  }
});

关于onsen-ui - 如何在 Controller 中控制页面路由?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24016366/

10-11 07:06