2014-09-24 68 views
0

我正在开发一个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 = '/absolute/path/to/template'; 
$scope.navigator.pushPage(url, { animation : 'slide' }); 

我的问题是什么,我需要做的,所以我不具备的绝对路径写入模板在网址变量?显然,我错过了一些东西,但我无法弄清楚什么。

提前致谢!

回答

0

我想这是因为在$ routeProvider使用路径是不是同一类型的,在navigator.pushPage()使用PAGEURL的。

$routeProvider.when(path, route); 

navigator.pushPage(pageUrl, option); 

路径就像在浏览器地址栏中找到了您的应用程序URL的模式或字符串。例如,"http://localhost:8000/app/index.html#/test1"。那时你可以参考routeProvider这个“/ test1”。然而,在navigator.pushPage(),您将需要指定页面的确切网址,就像你如何设置ur templateUrl里面$ routeProvider。换句话说,pageUrl = 路线

虽然这只是我的理解。

+0

谢谢。说得通 :) – Corduroy 2014-09-26 10:04:09