如何更新模型的默认对象?
例如,假设我在下面建模了 Box 对象。它的默认“颜色”属性设置为“#FFF”。
一旦用户开始与服务器交互,服务器会在某个时候传回新的默认颜色 #000。我希望从该点开始实例化的所有新框都默认为 #000 的颜色属性。
顺便说一句,假设我执行此更新,因为默认值是通过引用传递的,所有现有框也将更新它们的默认值。这是正确的吗?
var Box = Backbone.Model.extend({
defaults: {
"Colour" : "#FFF"
}
});
最佳答案
可以很容易地更改默认值
Box.prototype.defaults.Colour = '#000'
当您更改此设置时,已经创建的框将在其原型(prototype)链的深处具有新值
myBox.__proto__.constructor.prototype.defaults.Colour === '#000'
但这无关紧要,它不会更改来自 myBox.get('Colour')
的值,因为默认值已复制到 myBox.attributes
在实例化时。要更改现有框,您必须使用 myBox.set({'Colour': '#000'})
或 myBox.attributes.Colour = '#000'
.
(我希望我正确解释了你的问题)
关于javascript - backbone.js 更新模型默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6605612/