2013-01-20 3 views
3

/admin/prefix로 실행되는 관리 시스템을 빌드하려고합니다. 여기 Ember 라우터 rootURL 옵션 (잡히지 않은 오류 : 경로 '/ admin'과 일치하지 않음)

내가 갈 때 내 경로가

App.Router.reopen 
    location: 'history' 
    rootURL: '/admin' 

App.IndexRoute = Ember.Route.extend 
    setupController: (controller, model) -> 
    @controllerFor('application').set('currentRoute', 'home') 

파일입니다/관리자 나는 다음과 같은 오류 얻을 : 내 코드가 this serie을 기반으로 난 그냥 emberjs로 시작하고있어

Uncaught Error: No route matched the URL '/admin' 

Ember version: v1.0.0-pre.4 
Ember-data current api revision:: 11 
+0

당신이 좀 더 컨텍스트하십시오를 추가 할 수 있을까요? 예를 들어 라우터 매핑 (App.Router.map (...)). 더 좋은 점은, 예제의 jsfiddle/jsbin을 제공 할 수 있다면 정말 도움이 될 것입니다. –

답변

1

emberjs에서 라우팅에 대해 이야기 할 때, 사용중인 버전에 따라 다릅니다. 1.0pre2와 1.0pre3 사이에는 큰 API 변경 사항이있었습니다. www.emberjs.com의 문서는 이미 새 API에 대한 최신 정보이며 이해하기 쉽습니다. 자동으로 '/ 회원의 모든 구성원의 개요로 리디렉션

  • IndexRoute을 보여주는 정말 작은 예를 아래

    .

  • ID를 기반으로하는 동적 라우팅
  • 매개 변수가 'id'가 아닌 다른 경우에 대한 직렬화/역 직렬화입니다. 아래 예에서 'refId'(참조 ID를 나타냄)입니다.

글쎄, examle은 공식적인 문서 이상을 실제로 보여주지는 않습니다. 애드온 정보는 언제나 멋지다.

이렇게 도움이되기를 바랍니다. 건배.

App.Router.map(function() {  
    this.resource("members", { path: '/members' }); 
    this.resource("member", { path: "/members/:refId" }, function() { 
    this.route("delete"); 
    }); 
}); 

App.IndexRoute = Ember.Route.extend({ 
    redirect: function() { 
    this.transitionTo('members'); 
    } 
}); 

App.MembersRoute = Ember.Route.extend({ 
    model: function() { 
    return App.Member.findAll(); 
    } 
}); 

App.MemberRoute = Ember.Route.extend({ 
    model: function(params) { 
    return App.Member.find(params.refId); 
    }, 
    // overwrite default serializer (defaults to 'id', member has 'refId') 
    serialize: function(model) { 
    return { refId: model.refId }; 
    } 
}); 
+0

알았어 ... 라우터 부분은 나를 위해 가장 복잡합니다. 코드는 다음과 같습니다 : https://gist.github.com/4582548. 문제는 지금 (자바 스크립트/템플릿/*) 내 템플릿을 넣으면 ember가 경로 템플릿 (javascripts/admin/templates/*)을 보여주지 않는다는 것입니다 ... –

3

구 라우터에서는 경로를 확인할 때 'rootURL'속성이 무시되었습니다. 최신 버전의 ember에서 rootURL은 링크를 구성 할 때만 사용 된 것 같습니다. 이것이 버그 또는 감독인지 확실하지 않습니다. 이 문제를 해결하는 대신이 시도 :

App.Router.map(function() {  
    this.resource("admin", { path: "/admin" }, function() { 
    this.route("other"); 
    }); 
}); 

App.IndexRoute = Ember.Route.extend({ 
    redirect: function() { 
    this.transitionTo('admin'); 
    } 
});