2013-08-29 32 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

希望它有幫助。