2017-02-18 3 views
1

Irgendwie endet mein Verstand damit, ich weiß, dass ich wahrscheinlich gerade etwas vermisse, was sehr offensichtlich ist. Ich versuche, mit Ember und Lavarel zusammenzuarbeiten. Lavarel sendet die Daten korrekt, aber ich kann nicht mehr darauf zugreifen, sobald sie gespeichert sind. Ich habe einige verschiedene Dinge ausprobiert, um das zu erreichen, aber es erscheint immer leer, als ob es nichts in model.car (oder Auto, oder Modell, ect ..) gibt. Wenn mir jemand in die richtige Richtung zeigen könnte, wäre das hilfreich. Ich habe ein paar ähnliche Fragen gesehen, aber keine schien mein Problem zu lösen.Zugriff auf Modellspeicher in der Vorlage nicht möglich

Model Data

Data Sent from Lavarel

cars.js (Route)

import Ember from 'ember'; 

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

car.js (Modell)

import DS from 'ember-data'; 

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

cars.js (Controller)

import Ember from 'ember'; 

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

}); 

application.js (Serializer)

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 (Template)

{{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> 

Antwort

0

Sie haben Recht, über alles, wenn Sie Auto-Modell in den Speicher geladen wurde. Wie du gesagt hast, hast du etwas sehr Offensichtliches verpasst. dh. Anstelle von model.car können Sie einfach auf model zugreifen. Für den nächsten zu debuggen würde ich Sie ermutigen, Log-Helfer wie {{log 'model' model}} verwenden dies wird Modellobjekt in der Konsole drucken. Sie können gehen ember template development helper ember guide

<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

Vielen Dank, das scheint tatsächlich das Problem zu sein. Schwör ich habe das mal versucht, aber anscheinend nicht. Ich schaue mir die Protokollierung an, ich denke, dass die console.log() mich mehr als alles andere verwirrte. –

Verwandte Themen