首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >1.13中将js对象动态添加到模型数组中

1.13中将js对象动态添加到模型数组中
EN

Stack Overflow用户
提问于 2015-06-23 05:33:13
回答 3查看 1.8K关注 0票数 20

我有以下代码:

代码语言:javascript
复制
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不是函数

经过一些研究,我得出了这个解决方案。

代码语言:javascript
复制
this.get('messages.content').unshiftObject(message.internalModel);

这在一定程度上是有帮助的。现在我有两个问题:

  • 我不确定使用私有ember data api是不是一个好主意
  • 我在向模型添加记录和在屏幕上呈现记录之间有一个恼人的延迟。如果我不调用msg.save(),情况会更糟;记录不会被呈现。因此,据我所知,它等待我们从服务器得到响应,然后才呈现它。但我需要相反的行为-我需要首先显示记录,然后保存它(为用户显示保存状态),这样用户就会认为一切都进行得非常快。
EN

回答 3

Stack Overflow用户

发布于 2015-07-10 17:28:10

不求助于私有接口的一种可能的解决方案是使用toArray() (github issue):

代码语言:javascript
复制
var array = this.get('messages').toArray()
array.addObjects(this.get('messages'))
array.addObject(msg)
this.set('messages', array)
票数 8
EN

Stack Overflow用户

发布于 2015-09-12 00:52:17

1.13之前的版本:

代码语言:javascript
复制
this.get('content').pushObjects(messages);

1.13之后:

代码语言:javascript
复制
messages.forEach(functio(message) {
  this.get('model.content').pushObject(message._internalModel);
}); 
票数 7
EN

Stack Overflow用户

发布于 2015-12-17 06:47:59

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

代码语言:javascript
复制
setPeople:function(){
    this.set('people',this.get('content').toArray())
}.observes('content')

然后,找到更多的person模型,以进行数组

代码语言:javascript
复制
getMoreUsers(){
      var self = this;
            this.set('offset', this.get('offset')+1);
            self.store.findAll('person').then(function(people){
             self.get('people').pushObjects(people.toArray());
            });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30990198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档