javascript - Ember 数据自定义数组推送和删除

标签 javascript ember.js ember-data

我正在为我的 Ember 数据属性实现一个数组

DS.JSONTransforms.array = {
  serialize: function(value) {
    return Em.isNone(value) ? [] : value ;
  },
  deserialize: function(value) {
    return Em.isNone(value) ? [] : value ;
  }
};

我创建了这个 jsbin 用于测试添加和删除项目到数组 http://jsbin.com/avENazE/4/edit

如果我检查控制台

model.get('pages').push('hi');
console.log(model.get('pages'));

我可以看到新项目已正确添加到数组中,但未显示在 View 中。

计数属性也没有更新,这个错误在保存模型时显示在控制台上

Uncaught TypeError: You must pass a resolver function as the sole argument to the promise constructor 

最佳答案

要使 view 了解表示模型数据的更改,您需要数据绑定(bind)才能正常工作。为了使数据绑定(bind)正常工作,您需要使用对绑定(bind)敏感的正确函数,因此在对数组进行操作的情况下,您不能只使用普通的 push 而是 pushObject 或对应的 removeObject,这同样适用于为属性设置新值,而点符号将起作用,它不会更新您的绑定(bind),因此 .set().get() 需要用到等

所以说,这里是您的工作 jsbin .

希望对您有所帮助。

关于javascript - Ember 数据自定义数组推送和删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18507390/

相关文章:

Javascript:正则表达式搜索并提取 "{ }"内的字符串

javascript - 使用 Chrome Ember.js 打开 URL 时无法使 HTML anchor 正常工作

javascript - 调用 unloadRecord 后 Ember.js "calling set on destroyed object"错误

javascript - Ember.js 1.5.1 绑定(bind)属性禁用到按钮

javascript - 在 ember 模型保存上强制发送 post 请求

ember.js - Ember 模型间隔重新加载

javascript - Object.defineProperty 是否检查属性是否已定义?

javascript - 批量地理编码

javascript - jquery加载div属性返回未定义

javascript - Emberjs - 将参数动态绑定(bind)到 View