Backbone.js 如何使backbone.stickit一次收集所有值?
问题: 我使用Backbone.js 如何使backbone.stickit一次收集所有值?,backbone.js,backbone-stickit,Backbone.js,Backbone Stickit,问题: 我使用backbone.stickit对表单进行双向绑定。但是,我发现很难取消收集,除非我将所有属性的updateModel设置为false。所以,问题是,当用户单击save按钮时,如何从表单中获取所有值 A.K.A如何在stickit中一次手动收集所有数据 我试图访问它以获取所有处理程序,以便手动触发,但显然,由于getConfiguration函数是私有的,所以我无法访问它 我错了。getConfiguration可以通过主干网.Stickit.getConfiguration来访问
backbone.stickit
对表单进行双向绑定。但是,我发现很难取消收集,除非我将所有属性的updateModel
设置为false
。所以,问题是,当用户单击save按钮时,如何从表单中获取所有值
A.K.A如何在stickit中一次手动收集所有数据
我试图访问它以获取所有处理程序,以便手动触发,但显然,由于
getConfiguration
函数是私有的,所以我无法访问它 我错了。getConfiguration可以通过主干网.Stickit.getConfiguration来访问,所以我使用了这个函数来获取所有值
// for backbone form views with stickit enabled
// to get all observed fields at once
var stickitGetValues = function (values) {
_.each(this.bindings, function(v, selector) {
var namespace = '.stickit.' + this.model.cid;
var $el = this.$(selector);
var binding = this.bindings[selector];
var config = Backbone.Stickit.getConfiguration($el, binding);
if (values.indexOf(config.observe) != -1 && config.events && config.events.length > 0) {
var event = config.events[0] + namespace;
var val = config.getVal.call(this, $el, event, config);
this.model.set(config.observe, val, {silent: true});
}
}, this);
}
要使用它,只需在主干内调用它
stickitGetValues.call(this, ["name", "age", "whatever"]);
因此,视图的模型将相应地更新。看一看-它旨在帮助管理未保存的属性,并与stickit配合使用。很好!这就是我要找的。