javascript - Ember.js 如何连接两个对象

标签 javascript ember.js

我在 Ember 中有一个对象(我们称之为现有):

 var existing = {
     items: [
        ...
     ],
     ...
 }

在点击服务器端请求的回调中,有一个名为 result 的新响应,它看起来与现有相同。我需要获取现有的items,并将它们添加到新的结果中。所以我有以下内容:

  var result = { ... };
  var existing = this.get('content');
  result.items = result.items.concat(existing.items);
  this.set('content', result);

问题是,在模板中渲染时,它只是显示 结果 中的新项目,现有 中的旧项目即使在项目。有什么想法吗?

谢谢。

最佳答案

我猜问题是使用 Ember.Array ( http://emberjs.com/api/classes/Ember.Array.html ) 不支持的 concat 不会触发绑定(bind),因此您的 View 不会更新。要合并项目数组,您可以执行以下操作:

var result = { ... };
var existing = this.get('content');
result.items.forEach(item) {
  existing.items.pushObject(item);
}
this.set('content', existing);

希望对你有帮助

关于javascript - Ember.js 如何连接两个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16657067/

相关文章:

javascript - 如何添加函数中存在的所有参数?

php - 冲突的 Javascript 阻止表单验证

ember.js - JSONAPI 的 Dasherize 属性

ember.js - 与mixin的多态关系

ember.js - 如何在变成无效方法后在模板中显示错误消息

javascript - for in JS 循环中的简单对象属性访问

javascript - meteor +MongoDB : How to get nested data?

php - triconsole 日历不与位于下方的日历重叠

javascript - 通过获取 JSON 对象并将其推送到存储中来提供 Ember.js 模板

jquery - 使用 ember.js 和 ember easyform 包装 bootstrap/jquery 小部件