4

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

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

谢谢。

4

1 回答 1

2

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

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

另一种方法是

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

你放在st上的导航#navigator器在哪里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);
  }
});
于 2014-06-04T09:12:55.423 回答