2017-09-23 4 views
0

J'ai un problème étrange avec Jember, quand je pousse un objet à un modèle. Voici mon code:pushobject n'est pas une fonction emberjs

// Environment.js 
    EXTEND_PROTOTYPES: { 
    // Prevent Ember Data from overriding Date.parse. 
    Date: true, 
    Array: true, 
    } 

Route.js

model() { 
    return Ember.RSVP.hash({ 
    newCollection: this.get('store').createRecord('collection'), 
    book1: this.get('store').createRecord('book'), 
    book2: this.get('store').createRecord('book') 
    }) 
} 

Contrôleur

actions:{ 
    addCollection(model) { 
    model.newCollection.pushObject(model.book1); 
    model.newCollection.pushObject(model.book2); 
    }, 
} 

Maintenant, je ne suis pas sûr de ce que la question, mais je suis en train de pousser le modèle de livre Dans la collection, cependant, je reçois un problème avec ce que le journal de la console suggère que pushObject n'est pas une fonction. J'ai mis à jour mon Environment.js comme d'autres questions l'ont suggéré, mais cela reste un problème.

Modèle Collection

// collection Model 
export default DS.Model.extend({ 
    name: DS.attr('string'), 
    city: DS.attr('string'), 
    books: DS.hasMany('book', { async: true }) 
}); 

Le modèle de livre

//book Model 
export default DS.Model.extend({ 
    title: DS.attr('string'), 
    description: DS.attr('string'), 
    collection: DS.belongsTo('collection', {async: true}) 
}); 
+0

s'il vous plaît montrer vos modèles – Lux

+0

@Lux les modèles ont été ajoutés à la question – jsg

Répondre

1

Votre problème est que newCollection est un record de collecte. donc vous devriez faire:

model.newCollection.get('books').pushObject(model.book1); 
2

Vous avez une faute de frappe. Vous poussons au modèle réel au lieu de la bookshasMany relation:

actions: { 
    addCollection(model) { 
    model.newCollection.get('books').pushObject(model.book1); 
    model.newCollection.get('books').pushObject(model.book2); 
    }, 
} 
+0

En fait non. 'model' est * pas * un objet de braise. Il retourne 'return Ember.RSVP.hash ({...})'. – Lux

+1

Adressé le commentaire. – locks