2014-09-24 2 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 = '/test1'; 
$scope.navigator.pushPage(url, { animation : 'slide' }); 

이 작동 :

var url = '/absolute/path/to/template'; 
$scope.navigator.pushPage(url, { animation : 'slide' }); 

내 질문에 내가 템플릿에 절대 경로를 작성하지 않아도 내가 그렇게해야 할 것입니다 url 변수에? 분명히 나는 ​​뭔가를 놓치고 있지만, 나는 무엇을 알아낼 수 없다. 사전에

감사합니다!

답변

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를 설정하는 방법과 마찬가지로 정확히 템플릿 URL$ routeProvider 안에 정확한 URL을 지정해야합니다. 즉, 페이지 URL = 경로입니다.

그건 내 이해에서 나온 것입니다.

+0

감사합니다. 말이된다 :) – Corduroy