使用AngularJS$routeProvider&x2B;OnsenUI-ons.navigator.pushpage()

使用AngularJS$routeProvider&x2B;OnsenUI-ons.navigator.pushpage(),angularjs,navigation,onsen-ui,Angularjs,Navigation,Onsen Ui,我正在做一个AngularJS+OnsenUI项目,我的导航有问题 假设我有一个模块: angular .module('app.home', ['ui.utils','ngRoute','ngAnimate']) .controller('HomeCtrl', HomeCtrl) .config(function($routeProvider) { $routeProvider .when('/', {

我正在做一个AngularJS+OnsenUI项目,我的导航有问题

假设我有一个模块:

angular
    .module('app.home', ['ui.utils','ngRoute','ngAnimate'])
    .controller('HomeCtrl', HomeCtrl)
    .config(function($routeProvider) {
        $routeProvider
           .when('/', {
              templateUrl: 'path/to/home/template',
        controller: 'HomeCtrl'
    })
    .when('/test1', {
        templateUrl: 'path/to/template',
        controller: 'TestOneCtrl'
    })
    .when('/test2', {
        templateUrl: 'path/to/template',
        controller: 'TestTwoCtrl'
    })
    .otherwise({
        redirectTo: 'path/to/home/template'
    }); 
}))

在HomeCtrl中,我应该(取决于某些函数的结果)导航到test1.html或test2.html。我的问题是我不知道如何将routeProvider链接到ons.navigator.pushPage函数

这不起作用:

var url = '/test1';
$scope.navigator.pushPage( url, { animation : 'slide' } );
这项工作:

var url = '/absolute/path/to/template';
$scope.navigator.pushPage( url, { animation : 'slide' } );
我的问题是,我需要做什么才能不必在url变量中写入模板的绝对路径?显然我错过了什么,但我不知道是什么

提前谢谢

我认为这是因为$routeProvider中使用的路径与navigator.pushPage()中使用的pageUrl的路径类型不同

路径类似于在浏览器地址栏中找到的应用程序url的模式或字符串。例如,
”http://localhost:8000/app/index.html#/test1“
。此时,您可以在routeProvider中将其称为“/test1”。但是,在navigator.pushPage()中,您需要指定页面的确切url,就像在$routeProvider中设置ur templateUrl一样。换句话说,pageUrl=route


不过这只是我的理解。

谢谢。有道理:)
$routeProvider.when(path, route);
navigator.pushPage(pageUrl, option);