Ich versuche, es so zu machen, dass jeder neue Auflistungsdatensatz, der erstellt wird, ein Produktattribut hat, dessen Wert ein leeres veränderbares Array ist.Kann CreateRecord mit veränderbarem Array-Attribut nicht erstellen
bekam ich ein Modell in /collection.js definiert
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string'),
products: DS.hasMany('product'),
rev: DS.attr('string')
});
und eine Route in /view-collections.js. In der Route ist createCollection eine Aktion, die lokal einen Datensatz einer Sammlung erstellt (ich verwende PouchDB, das die Ember Data-Funktionalität verwendet). Ich habe Probleme in der Zeile, in der createRecord aufgerufen wird. Nach einigen Konsolenprotokollen und dem Erstellen einer Sammlung habe ich festgestellt, dass der gespeicherte Sammlungsdatensatz kein Produktattribut enthält, nur name und rev, es wird wie die Zeile "products: []" ignoriert.
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.findAll('collection');
},
titleToken: 'Collections',
actions: {
createCollection() {
let route = this,
controller = this.get('controller');
let collection = this.store.createRecord('collection', {
name: controller.get('newName'),
products: []
});
return collection.save().then(function() {
controller.set('newName', '');
//route.transitionTo('products.product.collections', product);
});
}
}
});
Statt
products: []
und
products: Ember.A([])
von denen, die beide scheinen, wie sie erhalten ausgeführt tun sie nicht, ich habe auch versucht, alle folgenden
products: DS.MutableArray([])
products: DS.ManyArray
products: DS.MutableArray
products: DS.ManyArray([])
die gib mir Fehler. Schließlich auf meiner Ansicht-collections.hbs
{{#link-to 'products' class="button"}}
Back to products
{{/link-to}}
{{input type="text" class="new-collection" placeholder="New Collection" value=newName insert-newline="createCollection" }}
<button class="btn btn-primary btn-sm new-collection-button" {{action "createCollection"}}
disabled={{disabled}}>Add</button>
{{#each model as |collection|}}
<div>{{collection.name}} {{collection.products}} {{collection.id}}
</div>
{{/each}}
, wo ich alle Informationen aller Sammlungen zu drucken, es tatsächlich ein Objekt für {{collection.products}} findet und druckt die folgenden für jede Sammlung.
<DS.PromiseManyArray:ember498>
Jede Idee, was dieser letzte Teil ist und wie ich schreiben kann, dass „Produkte: []“, Linie in der Strecke, ist willkommen! Danke