for*_*ice 3 javascript backbone.js
如何更新模型的默认对象?
例如,假设我在下面建模了Box对象.它将默认的"Color"属性设置为"#FFF".
一旦用户开始与服务器交互,服务器在某些时候会传回新的默认颜色#000.我希望从该点开始实例化的所有新框默认为#000的颜色属性.
顺便说一下,假设我执行此更新,因为默认值是通过引用传递的,所有现有的框也将更新其默认值.它是否正确?
var Box = Backbone.Model.extend({
defaults: {
"Colour" : "#FFF"
}
});
Run Code Online (Sandbox Code Playgroud)
c3r*_*rin 10
使用可以轻松更改默认值
Box.prototype.defaults.Colour = '#000'
Run Code Online (Sandbox Code Playgroud)
当你改变它时,已经创建的框将在其原型链的深处有一个新值
myBox.__proto__.constructor.prototype.defaults.Colour === '#000'
Run Code Online (Sandbox Code Playgroud)
但这并不重要,它不会改变myBox.get('Colour')由于默认值被复制到myBox.attributes实例化时的值.要更改现有的盒子,你必须使用myBox.set({'Colour': '#000'})或myBox.attributes.Colour = '#000'.
(我希望我正确地解释你的问题)
| 归档时间: |
|
| 查看次数: |
2784 次 |
| 最近记录: |