backbone.js - BackboneJS,保存方法被触发两次
问题描述
我有一个应用程序,其中我不使用主干视图,只使用主干模型。
结构是下面的结构。
#html
<tr>
<td >Personal</td>
<td id="personal-data" data-content="<?=str_replace('"',"'",json_encode($data))?>">
<input type="text" name="name" placeholder="Name"><br>
<input type="text" name="address" placeholder="Address">
</td>
<tr>
#PersonalModel.js
var Personal = Backbone.Model.extend({
urlRoot: "/api/personal"
});
$(document).ready(function () {
var personal = new Personal($('td#personal-data').data('content'));
$('td#data-ept *').on('change', function () {
personal.set(this.name, this.value);
personal.save()
});
});
this.name 始终等于要持久化或更新的模型属性之一。
解决方案
问题是我也在使用一个验证表单的插件。因此,每次我更改输入值时,都会有一个 div 发生变化。我用这段代码解决了问题
$(document).ready(function () {
var personal = new Personal($('td#personal-data').data('content'));
$('td#data-ept *[name]').on('change', function () {
personal.set(this.name, this.value);
personal.save()
});
});
推荐阅读
- zapier - Zapier WebHook Get 命令返回数据,但不是每个数据中断的全部
- python - 我的 python manage.py runserver 不工作?
- swift - Swift 5,一个可以保存最高价值的函数的想法
- python - 如何从另一个数据框中的值创建一个新列?
- animation - 在 Internet Explorer 中的曲线路径上为 SVG 设置动画
- python - 如何更改日期格式(从 yyyy-MM-DD 到 yyyy-MM)
- git - git log “.../{ => 文件夹}/...” 是什么意思?
- bootstrap-4 - Aws-amplify node_modules 不完整
- swift - 如何在 SwiftUI 中的动态可滚动路径中设置最后一个元素的偏移量
- java - 错误:线程 AWT-EventQueue-0 java.lang.ClassCastException 中的异常