Ich sortiere ein Array von Objekten, die von Ember-Data abgefragt werden, mit 'type'-Taste, bevor sie in model()
-Methode eines Ember.Route
zurückgegeben werden.Vorlage wird nicht von Modellobjekt nach dem Sortieren rendern
app/Routen/test.js
export default Ember.Route.extend({
model() {
let obj = Ember.Object.create({a: [], b: [], c: []});
this.get('store').findAll('obj').then(function(unsorted){
unsorted.forEach(function(item) {// sort per type
obj.get(item.get('type')).addObject(item);
});
return obj;
});
}
});
Das Array von (das Versprechen) die Abfrage sieht wie folgt aus Ember-Daten zurückgegeben (alle Objekte Ember internen Eigenschaften haben)
[
{
_id: '1',
type: 'a',
properties: {...}
},
{
...
},
{
_id: '15',
type: 'b',
properties: {...}
}
]
Und das neue Objekt mit Objekten von „Typ“ -Taste sortiert wie folgt aussieht
{
a: [{
_id: '1',
type: 'a',
properties: {...}
},
...
],
b: [
... ,
{
_id: '15',
type: 'b',
properties: {...}
},
c: [...]
};
app/Routen/test.hbs
<h2>Test</h2>
<h3>Type a</h3>
{{#each model.a as |source|}}
<div>
{{source.properties.prop1}}
</div>
{{/each}}
Die Vorlage der Teil, der die Array-Schleifen über, noch hat die Ember-Inspektor Plugin-Liste die Model
Eigenschaft unter „Eigene Eigenschaften“ des nicht machen Route (rechtes Feld im "Baum anzeigen" -Modus).
Wenn Sie jedoch ein POJO (wörtliches Einfügen von Objekt mit Array durch Schlüsselcode) zurückgeben, verhält sich alles wie erwartet.
Ich vermute, dass dies etwas mit den internen (Ember-) Eigenschaften der Objekte zu tun hat, die von Ember-Daten zurückgegeben werden (ich habe über den Besitzer eines Objekts gelesen usw.), aber ich kann das nicht herausfinden. .
Mit @Pavols Antwort wurde mir bereits klar, dass das Problem eher mein Verständnis von Versprechungen im Allgemeinen war als mein Wissen über das Ember - Framework, danke an alle Eingang! – MikiDi