Ember.js如何连接两个对象
Ember.js how to concat two objects
我在Ember中有一个对象(我们称之为existing
):
var existing = {
items: [
...
],
...
}
在命中服务器端请求的回调中,有一个新的响应称为result
,看起来与existing
相同。我需要将现有的items
添加到新的result
中。所以我有以下内容:
var result = { ... };
var existing = this.get('content');
result.items = result.items.concat(existing.items);
this.set('content', result);
问题是,当在模板中呈现时,它只是显示来自result
的新项目,来自existing
的旧项目即使在items
中也没有显示。知道为什么吗?
谢谢。
我想问题是使用concat
不支持Ember.Array
(http://emberjs.com/api/classes/Ember.Array.html)不会触发绑定,因此您的视图未更新。要合并条目数组,您可以执行以下操作:
var result = { ... };
var existing = this.get('content');
result.items.forEach(item) {
existing.items.pushObject(item);
}
this.set('content', existing);
希望有所帮助
items是一个数组,你想使用javascript的concat方法,你可以在现有的数组上调用toArray。可列举的项目。
var result = { ... };
var existing = this.get('content');
result.items = result.items.concat(existing.get('items').toArray());
this.set('content', result);
如果结果。物品已经是灰烬了。Enumerable我会用pushObjects或addObjects。http://emberjs.com/api/classes/Ember.MutableArray.html method_addObjects
var result = { ... };
var existing = this.get('content.items');
result.items = result.get('items').addObjects(existing);
this.set('content', result);
我知道这是一个旧的帖子,但由于没有一个公认的答案,我想我应该把我认为是最好的选择。我最近发现自己需要将一堆DS.ManyArray
连接在一起,这就是我想到的解决方案w/:
var myArrayOfHasManyArrays = ...;
var concatenated = [].concat.apply([], myArrayOfHasManyArrays.invoke('toArray'));
希望这对你有帮助!
相关文章:
- 正在更新mongod中两个对象内部的数组
- 添加两个对象以获取值的总和
- 如何使用javascript合并两个对象数组
- 在JavaScript中相等两个对象.在更改一时,秒会自动更改
- 如何使用AngularJs比较两个对象的JSON
- 如何在javascript中合并两个对象数组
- JavaScript - 合并两个对象数组并根据属性值删除重复数据
- Javascript如何确定两个对象是否相同
- 比较两个对象数组
- Javascript tests - 如何比较 Jasmine 中的两个对象
- JavaScript:为什么 array.push() 附加两个对象而不是一个对象
- 两个对象相等,但 js 确实说假
- 两个对象之间的Javascript原型
- 使用angularjs或javascript的两个对象数组的交集
- 合并两个对象而不覆盖
- 如何获取具有相同值的两个对象,并将其视为一个对象
- 比较两个对象数组中的重复对象,并在其'这在JavaScript中不是重复的
- 比较underscorejs中的两个对象数组
- 查找/合并具有共同属性的两个对象
- 有没有一个lodash函数可以合并两个对象并删除其中一个对象的属性(如果它们没有)'不存在于另一个中