2014-07-12 2 views
1

대신 slug으로 레코드를 고유하게 찾기 원한다는 것을 알려주려면 어떻게해야합니까? 내 경로 모델에서ember가 다른 속성으로 레코드를 고유하게 식별하도록 지정하는 방법은 무엇입니까?

나는이

model: function(params) { 
    return this.store.find('anime', params.anime_slug); 
}, 
serialize: function(anime) { 
    return { anime_slug: anime.get('anime_slug') }; 
}, 

처럼 뭔가를 할 수 있지만 내가 model.reload() 같은 것을 호출 할 때마다 레코드의 ID가 아닌 레코드의 슬러그와 함께 다시 시도합니다. 그렇다면 나는 어떻게 엠버가 가 아닌 anime_slug 레코드를 유일하게 식별하도록 알릴 수 있습니까?

답변

0

거의 다 왔어!

경로 :

App.AnimeRoute = Em.Route.extend({ 
    model: function(params) { 
    return this.store.find('anime', { anime_slug: params.anime_slug }).then(function(results) { 
     return results.objectAt(0); 
    }); 
    }, 

    serialize: function(model) { 
    return { anime_slug: model.get('anime_slug') }; 
    }, 
}); 

참고 모델 방법의 변경.

라우터 : 비록 서버를 조회하고,이 방법은 여러 기록을 기대하고 있습니다

App.Router.map(function() { 
    this.resource('anime', { path: '/anime/:anime_slug' }); 
}); 
+0

. 단일 레코드를 반환하더라도 문제는 내 컨트롤러에서 ObjectController가되어야하지만 ObjectController 대신 ArrayController를 사용해야합니다. – user1952811

관련 문제