【发布时间】:2015-07-29 17:46:15
【问题描述】:
继续我之前的question。
我正在使用dobcto formbuilder 插件。此插件使用rivets.js 和backbone.js。
在我之前的问题中,我无法弄清楚出了什么问题,但是在12 hours 对该插件代码进行了研究之后。我发现问题在于使用一些弹出窗口将数据添加到textbox。
当我们通过键盘手动添加时,change事件触发成功,文本框数据被添加到JSON结果中。
我浏览了 rivets.js 文档并阅读了有关它的所有内容。但是这个插件使用的是旧版本的 rivets.js,我现在不想更新它,因为项目提交日期快到了,我还有很多工作要做。
所以如果能在这个版本中解决那就太好了。该插件像这样初始化 rivets.js:
(function () {
rivets.binders.input = {
publishes: true,
routine: rivets.binders.value.routine,
bind: function (el) {
return $(el).bind('input.rivets', this.publish);
},
unbind: function (el) {
return $(el).unbind('input.rivets');
}
};
rivets.configure({
prefix: "rv",
adapter: {
subscribe: function (obj, keypath, callback) {
callback.wrapped = function (m, v) {
return callback(v);
};
return obj.on('change:' + keypath, callback.wrapped);
},
unsubscribe: function (obj, keypath, callback) {
return obj.off('change:' + keypath, callback.wrapped);
},
read: function (obj, keypath) {
if (keypath === "cid") {
return obj.cid;
}
return obj.get(keypath);
},
publish: function (obj, keypath, value) {
if (obj.cid) {
return obj.set(keypath, value);
} else {
return obj[keypath] = value;
}
}
}
});
}).call(this);
即使在阅读了铆钉文档之后,我也无法理解这段代码。那么请告诉我如何更改这个初始化过程,以便它接受弹出窗口添加的文本框文本?
【问题讨论】:
标签: javascript jquery html backbone.js rivets.js