如何在1.13中将js对象动态添加到模型数组中?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (3)
  • 关注 (0)
  • 查看 (142)

我有以下代码:

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 is not a function

现在我有两个问题:

  • 我不确定使用私有的EMBDataAPI是否是个好主意
  • 在向模型添加记录和在屏幕上呈现记录之间,我有一个恼人的延迟。不仅如此,如果我不调用msg.Save(),记录就不会呈现。因此,据我所知,它一直等到服务器的响应,然后才呈现它。但是我需要相反的行为--我需要先显示记录,然后保存它(显示用户的保存状态),这样用户就会认为一切都进行得非常快。
提问于
用户回答回答于

我会让所有的模型返回数组,然后,将数组添加到这个数组中。

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());
            });
用户回答回答于

在1.13之前:

this.get('content').pushObjects(messages);

在1.13之后:

messages.forEach(functio(message) {
  this.get('model.content').pushObject(message._internalModel);
}); 
用户回答回答于

使用toArray()(GitHub问题):

var array = this.get('messages').toArray()
array.addObjects(this.get('messages'))
array.addObject(msg)
this.set('messages', array)

所属标签

可能回答问题的人

  • 女淘日记

    杭州吱吱吱科技 · 站长 (已认证)

    1 粉丝1 提问3 回答
  • 找虫虫

    6 粉丝0 提问3 回答
  • 朝夕熊博客

    1 粉丝2 提问3 回答
  • 13火麒麟

    1 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券