javascript - backbone.js 更新模型默认值

标签 javascript backbone.js

如何更新模型的默认对象?

例如,假设我在下面建模了 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/

相关文章:

jquery - 如何防止backbone的默认 Action ?

javascript - backbone.js - View 中的 Controller 属性

javascript - 如何使用 Django REST Framework 保存嵌套的 Backbone 模型

Javascript 字符串匹配

javascript - MapBox GL JS : Make a non-interactive map interactive

javascript - 如何知道 Html 元素何时准备好(呈现)?

javascript - Backbone JS 数据表集成

javascript - "=>"函数会丢失上下文吗?

javascript - jQuery/JS setTimeout() 在调用clearTimeout()后仍然运行

javascript - Backbone.js `model.destroy()` 自定义转换?