backbone.stickit不随模型更改而更新

时间:2014-08-13 01:09:02

标签: javascript backbone.js backbone-views backbone-routing backbone-model

我有一个backbone.sticket绑定附加到与mainView视图关联的模型:

bindings: -> {
        ".some-class": "someAttribute",
    }

和以下模板

<div class="some-class"></div>

该属性正确填充,但是当我尝试在浏览器控制台中编辑someAttribute时:

router.mainView.model.attributes.someAttribute = "TEST"

即使键入

,绑定也没有任何变化

router.mainView.model.attributes.someAttribute

进入浏览器控制台会按预期返回"TEST"

我是否应该期望div的内容在浏览器中也会发生变化?

1 个答案:

答案 0 :(得分:1)

Sticket可能是基于事件的,Backbone事件不起作用。如果您手动编辑模型的attributes,Backbone中的任何内容都不会知道发生了什么,因此不会触发任何事件。如果您希望触发事件,则需要使用set

router.mainView.model.set('someAttribute', 'TEST')
// or
router.mainView.model.set({ someAttribute: 'TEST' })

其中任何一个都应该生成"change"个事件,这可能是Sticket用来连接自己的事件。