2017-02-18 12 views
1

종류의 외적인 것들이 이것으로 끝납니다. Ember와 Lavarel과 함께 일할 생각을하고 있습니다. Lavarel이 데이터를 제대로 보내고 있지만 일단 저장되면 액세스 할 수있는 것 같지 않습니다. 나는이 작업을하기 위해 여러 가지 다른 것들을 시도했지만 model.car (또는 자동차, 모델 등)에 아무것도없는 것처럼 항상 공백으로 표시됩니다. 누군가가 올바른 방향으로 나를 가리킬 수 있다면 도움이 될 것입니다. 몇 가지 비슷한 질문을 보았지만 아무도 내 문제를 해결하지 못했습니다.템플릿의 모델 저장소에 액세스 할 수 없습니다.

Model Data

Data Sent from Lavarel

cars.js (루트)

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model: function() { 
     return this.store.findAll('car'); 
    } 
}); 

car.js (모델)

import DS from 'ember-data'; 

export default DS.Model.extend({ 
    make: DS.attr('string'), 
    model: DS.attr('string') 
}); 

cars.js (컨트롤러)

당신이 자동차 모델이 저장소에로드있어 경우 0
import Ember from 'ember'; 

export default Ember.Controller.extend({ 
    session: Ember.inject.service() 

}); 

application.js (시리얼)

import DS from 'ember-data'; 

export default DS.RESTSerializer.extend({ 
    normalizeSingleResponse(store, primaryModelClass, payload, id, requestType) { 
    let typeKey = primaryModelClass.modelName; 
    let ret = {}; 
    ret[typeKey] = payload; 
    return this._normalizeResponse(store, primaryModelClass, ret, id, requestType, true); 
}, 
normalizeArrayResponse(store, primaryModelClass, payload, id, requestType) { 
    let typeKey = primaryModelClass.modelName; 
    let ret = {}; 
    ret[typeKey] = payload; 
    console.log(ret); 
    return this._normalizeResponse(store, primaryModelClass, ret, id, requestType, false); 
} 
}); 

cars.hbs (템플릿)

{{outlet}} 
<ul id="todo-list"> 
     {{#each model.car}} 
     <li> 
      <input type="checkbox" class="toggle"> 
      <label>{{make}}</label><button class="destroy"> delete item</button> 
     </li> 
    {{/each}} 

</ul> 

답변

0

당신은 모든 것에 대해 옳다. 네가 말했듯이 너는 아주 명백한 것을 놓쳤다. 즉, model.car 대신 model을 사용하여 액세스 할 수 있습니다. 다음 번에 이것을 디버깅하려면 {{log 'model' model}}과 같은 로그 도우미를 사용하는 것이 좋습니다. 그러면 모델 객체가 콘솔에 인쇄됩니다. ember template development helper 덤버 가이드

<ul id="todo-list"> 
     {{#each model as |car|}} 
     <li> 
      <input type="checkbox" class="toggle"> 
      <label>{{car.make}}</label><button class="destroy"> delete item</button> 
     </li> 
    {{/each}} 
</ul> 
{{outlet}} 
+1

정말 고마워요, 실제로 문제가되는 것 같습니다. 맹세 할아버지, 나는 한 번에 이걸 시도했지만, 분명히 그렇지 않았다. 로깅을 살펴 보겠습니다. console.log()가 나보다 더 혼란 스러웠습니다. –