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/