2016-08-09 16 views
0

in ember 2.7 mit glut Daten ich habe eine Route mit Modellen mit ‚RSVP.hash‘ wie das Beispiel hier erstellt:Wie kann ein Objekt in Glutendaten gespeichert werden, wenn das Modell aus mehr als einem Objekt besteht?

model: function(params){ 
    return Ember.RSVP.hash({ 
     customer: this.store.findRecord('customer', params.customer_id), 
     address: this.store.createRecord('address') 
    }); 

Ich möchte die ‚Adresse‘ Teil des Modells retten? model.save() gibt als Ergebnis: 'Uncaught TypeError: Modell ist keine Funktion' Was kann ich tun, um nur den Adressteil des Modells zu speichern?

dies ist die Aktion, die das Modell spart:

createAddress: function(model){ 
     console.log(model.address.constructor); 
     model.address.save(); 

    } 

Modelle (Adresse):

import DS from 'ember-data'; 

export default DS.Model.extend({ 
    id_address: DS.attr('number'), 
    id_customer_fb: DS.attr(), 
    id_customer: DS.attr('number'), 
    id_supplier: DS.attr('number'), 
    id_state: DS.attr('number'), 
    id_country: DS.attr('number'), 
    postcode: DS.attr('string'), 
    active: DS.attr('boolean'), 
    address1: DS.attr('string'), 
    address2: DS.attr('string'), 
    city: DS.attr('string'), 
    alias: DS.attr('string'), 
    company: DS.attr('string'), 
    vat_number: DS.attr('string'), 
    firstname: DS.attr('string'), 
    lastname: DS.attr('string'), 
    other: DS.attr('string'), 
    phone: DS.attr('string'), 
    phone_mobile: DS.attr('string'), 
    deleted: DS.attr('boolean'), 
// date_add: DS.attr('date'), 
// date_upd: DS.attr('date'), 
    customer: DS.belongsTo('customer') 


}); 

Modelle Kunde:

import DS from 'ember-data'; 

export default DS.Model.extend({ 
    id_count: DS.attr('number'), 
    id_customer: DS.attr('number'), 
    id_default_group: DS.attr('number'), 
    id_lang: DS.attr('number'), 
    id_gender: DS.attr('number'), 
    active: DS.attr('boolean'), 
    email: DS.attr(), 
    firstname: DS.attr(), 
    lastname: DS.attr(), 
    company: DS.attr(), 
    birthday: DS.attr('date'), 
    date_add: DS.attr('date'), 
    date_upd: DS.attr('date'), 
    max_payment_days: DS.attr('number'), 
    newsletter: DS.attr('boolean'), 
    note: DS.attr(), 
    website: DS.attr(), 
    addresses: DS.hasMany('address') 
}); 
+0

Vom Fehler messsage Sie könnten, das unmittelbare Problem geben, dass Sie 'this.get ('Modell zu sagen brauchen ') .save() '. Wie bereits erwähnt, können Sie einen solchen Hash nicht speichern. SO brauchen Sie 'this.get ('model.address'). Save()'. –

+0

das gibt mir: Uncaught TypeError: Kann nicht lesen Eigenschaft 'Speichern' von undefined –

+0

Sie müssen einige Debuggen. Untersuchen Sie den Wert von this.get ('model') 'und untersuchen Sie dann den Wert von this.get ('model.address')'. –

Antwort

0

Die model, dass Sie gerade arbeiten mit ist nichts mehr als ein Hash. Ember.RSVP.hash({}) gibt nur einen Hash zurück, sobald alle Versprechen gelöst sind.

Also in Ihrem Fall, wenn Sie nur die Adresse speichern möchten, die Sie model.address.save()

+0

das gibt mir den gleichen Fehler –

+0

'console.log (Modell)' & 'console.log (model.address)'. Die erste sollte ein Objekt wie folgt zurückgeben: '{customer: {id: 1, ...}, Adresse: {id: nil, ...}}' Die zweite sollte die nicht gespeicherte Instanz der Adresse zurückgeben. – xcskier56

+0

console.log (Modell) gibt mir Objekt {___mit_meta__: Meta} __ ember_meta__: Metaadresse: (...) Adresse erhalten: GETTER_FUNCTION() Argumente: (...) Aufrufer: (...) length: 0name: "GETTER_FUNCTION "Prototyp: Objekt__proto__:() Adresse setzen: SETTER_FUNCTION (Wert) Kunde: (...) Kunde bekommen: GETTER_FUNCTION() Kunde setzen: SETTER_FUNCTION (Wert) __ Proto__: Objekt –

Verwandte Themen