如何在控制器中控制页面路由? [英] How to control page routes in the controller?

查看:68
本文介绍了如何在控制器中控制页面路由?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

OnsenUI很棒.快速简便.但是,关于控制控制器中的Onsen逻辑的文档并不多.

OnsenUI is great. Fast and easy. However, there is not much documentation for controlling Onsen logic in the controller.

例如,我想在控制器内执行$ location.path('/newpath').如何在温泉上做?我尝试了"ons.navigator.pushPage('partials/latestjob.html');"在我的控制器功能中,但不起作用.我们是否仅限于在Onsen上单击ng来转到另一页?

Like for instance, I want to do a $location.path('/newpath') inside a controller. How is done in Onsen? I tried "ons.navigator.pushPage('partials/latestjob.html');" in my controller function but doesn't work. Are we limited to ng-click in Onsen to go to another page?

谢谢.

推荐答案

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

In Onsen UI 1.04, you can access navigator from inside the controller as follows.

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

另一种方法是

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

其中#navigator是您放在s.t上的导航器的id.

where #navigator is the id of navigator you put on s.t.

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

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

This method can choose which navigator you use.

第三种方法是获得导航器作用域的方法.例如,

The third way is the one obtaining the navigator scope. For example,

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

类名.navigator-container是onsen ui导航器的内置类名. 即使在onsen ui 1.0中也是如此.

The class name .navigator-container is a built-in class name of onsen ui navigator. This goes well even in onsen ui 1.0.

添加:$rootScope

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

这篇关于如何在控制器中控制页面路由?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆