Backbone.js反向绑定(UI到模型)
问题描述:
我试图用Backbone.js生成表单,Backbone.js反向绑定(UI到模型)
以下是我现在正在做的事情。
表单上的每个输入元素都有一个Model
和一个View
。所以像往常一样model
包含像type
value
name
placeholder
等属性等。
通过骨干会议上,我已经得到了改变Model
反映在UI
但我想反也发生, 那就是当有当模特的属性value
以反映input
元素的变化value
。
这里就是我现在: prototype1.js
我想到的写上这将更新模型,像this视图的更新方法。有没有更好的方法来做到这一点?
PS:
这并没有帮助很大stackoverflow search: backbone.js reverse model binding
任何一般性的建议也与答案欢迎一起。
答
你有没有听说过backbone.modelbinding? 这是一个由Derick Bailey创建的插件,专门用于此目的,
一旦模型更改,它将更新视图,一旦视图更改,它将更新模型。
我以前用过它,它对于一个简单的表单很有效, 至今我不明白为什么它不适用于您的表单,但您必须尝试一下看看你的结构是否合适。
初始化是很容易的:
SomeView = Backbone.View.extend({
render: function(){
// ... render your form here
$(this.el).html("... some html and content goes here ... ");
// execute the model bindings
Backbone.ModelBinding.bind(this);
}
});
这是基本的简单绑定, 你可以走得更远mutch比:
可以绑定模型来查看不渲染(已在页面) 您可以绑定到多个模型属性 如果您希望 可以绑定到模型的事件,则可以通过表单中的数据绑定样式属性进行绑定
很多的选择,所以看看它,看看它是否适合你的应用程序。
答
我没有看到任何问题View
更新Model
的状态。其实我认为这是一个非常正确的工作方式,因为View
负责管理用户交互并且通常用户交互的结果是修改模型的状态。
说,我会建议:
- 使用events查看属性绑定您的视图的DOM元素改变。
- 声明事件发生时调用的视图上的方法,并且将模型的状态修改为此方法。
Backbone.ModelBinding已被放弃,因为它很糟糕。 – oLinkWebDevelopment 2014-01-07 02:33:30
在过去的半年中,我还没有发展成为骨干,但是没有意识到,但是在模型绑定被放弃之后,还有没有其他选择会弹出? – Sander 2014-01-07 12:09:31