如何控制控制器中的页面路由?

时间:2014-06-03 13:23:39

标签: onsen-ui

OnsenUI很棒。快速而简单。但是,控制器中没有太多用于控制Onsen逻辑的文档。

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

感谢。

1 个答案:

答案 0 :(得分:2)

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

$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);
  }
});