2013-08-29 31 views
2

我正在实施的数组,我烬数据属性灰烬数据的自定义数组推动和删除

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')); 

我可以看到,新项目corectly添加到阵列,但在视图中不显示。

而且计数属性未更新,此错误显示了保存模型

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

回答

1

本作的view知道你需要的数据绑定到正常工作的代表模型数据的变化,在控制台上。要使数据绑定正常工作,您需要使用对绑定合理的正确函数,因此在对数组进行操作的情况下,不能仅使用vanilla push而是使用pushObject或对应removeObject,这同样适用于一个新的值设置为一个属性,而点符号将工作将不会更新您绑定因此.set().get()需要使用等

这样说,在这里你的工作jsbin

希望它有帮助。