Ответ 1
Одним из возможных решений, не прибегая к частному API, является использование toArray()
(github issue):
var array = this.get('messages').toArray()
array.addObjects(this.get('messages'))
array.addObject(msg)
this.set('messages', array)
У меня есть следующий код:
var msg = this.store.createRecord({text:'first title', createdAt: "2015-06-22T20:06:06+03:00" })
this.get('model.content').pushObject(msg);
msg.save();
Мы создаем новую запись. Затем вставьте его в модель для отображения. Он отлично работал в версии 1.9, но после обновления до новейшего 1.13 он разбивается и показывает эту ошибку:
TypeError: internalModel.getRecord не является функцией
после некоторых исследований я пришел к этому решению
this.get('messages.content').unshiftObject(message.internalModel);
и это частично помогает. Теперь у меня две проблемы:
Одним из возможных решений, не прибегая к частному API, является использование toArray()
(github issue):
var array = this.get('messages').toArray()
array.addObjects(this.get('messages'))
array.addObject(msg)
this.set('messages', array)
До 1.13:
this.get('content').pushObjects(messages);
После 1.13:
messages.forEach(functio(message) {
this.get('model.content').pushObject(message._internalModel);
});
Я бы сделал все возвращаемые модели массивом, добавив массив в этот массив
setPeople:function(){
this.set('people',this.get('content').toArray())
}.observes('content')
тогда найдите больше персональных моделей, в массив
getMoreUsers(){
var self = this;
this.set('offset', this.get('offset')+1);
self.store.findAll('person').then(function(people){
self.get('people').pushObjects(people.toArray());
});