2013-02-03 3 views
1

완전히 걸렸습니다. 여기에 fiddle입니다. 이 예제에서는 url/cars/details를 방문 할 때 추가 데이터를로드 할 수 있기를 원하지만 어떻게 할 수 있는지 알 수 없습니다. '여기Ember js, 중첩 된 리소스에 추가 모델로드

App.Cars = DS.Model.extend({ 
    name: DS.attr('string'), 
    details: DS.belongsTo('App.Details') 
}); 

App.Details = DS.Model.extend({ 
    name: DS.attr('string'), 
    color: DS.attr('string'), 
    wheels: DS.attr('string') 
}); 

그리고 단축 비품

App.Cars.FIXTURES = [{ 
    id: 1, 
    name: 'Alfa Romeo', 
    details: 1 
}]; 

App.Details.FIXTURES = [{ 
    id: 1, 
    name: 'Alfa Romeo', 
    color: 'Red', 
    wheels: '14' 
}]; 

난 그냥 돈, 내가 아주 간단한 뭔가를 누락 확신이 일어날 수 있도록하는 방법을 어떤 아이디어 : 여기

내 모델입니다 뭘 알아?

편집 나는 세부 정보를 표시하는 가정의 URL에 다시로드하면 원래 프로젝트에, 나는 세부 사항을 볼 수 있지만, 그의는 한 번만 일어나는

흥미로운 일이다. 나는 콘솔에 모델을 인쇄 :

당신은 car{{linkTo 'details' car}} 도우미 전달됩니다

App.DetailsRoute = Ember.Route.extend({ 
    model: function(params) { 
    console.log(params) // prints once only if loaded app was loaded to this url 
    return App.Details.find(params.table_id); 
    }, 
    setupController: function(controller, model) { 
    console.log(model) // prints every time you click on a car 
    controller.set('content', model); 
    } 
}); 

답변

1

는 코드가 작동하지 않을 수 있도록 두 가지가 있습니다. 는 결과적으로 carDetailsRoute (그리고 DetailsController도)의 모델이 될 것입니다,하지만 당신은 대신 car.details를 원하는 :

{{#each car in controller}} 
    {{#linkTo 'details' car.details}} 
     {{car.name}} 
    {{/linkTo}} 
{{/each}} 

작동하지 않는 다른 것은 당신의 비품 id는 정수이다.

문자열로 바꾸면 작동합니다 (you can see in this JSFiddle).

+0

+1 이제 감사합니다. 감사합니다. – Giedrius

+0

FIXTURES 대신 실제 데이터를 사용하기 시작하면 링크에서 '정의되지 않은 항목'이 표시되는 이유는 무엇입니까? 모든 데이터를 조사한 결과 FIXTURES와 똑같은 것이었고, 세부 정보를 제외한 Cars.Model의 화면에 아무것도 표시 할 수 없었습니다. 비록 FIXTURES를 사용하면 화면에 car.details를 표시 할 수도 있고 모델 코드를 표시 할 수도 있습니다. – Giedrius

+0

@Giedrius이 부분은 문제가 발생하는 곳을 찾기가 조금 어렵습니다. 어쩌면 당신은 서버, 응답에 보낸 요청의 세부 사항을 가진 새로운 질문을 할 수 ... – louiscoquio

관련 문제