这是backbone.js 的一个已知特性,当您设置未更改的数据时,它不会触发更改事件,也不会通过验证。但是,我需要触发 change 事件,因为我正在存储来自 AJAX 调用的 JSON 响应,该调用存储后端验证的结果。如果用户在将相同字段留空的情况下继续提交表单,则后端验证将返回相同的 JSON 结果,并且当我将其保存到模型时,它不会触发更改事件。
我在将数据设置到模型中的 AJAX 成功回调中尝试了一些事情:
尝试的解决方案#1
t.model.unset('fieldErrors',{silent: true});
t.model.set({fieldErrors: JSONResponse});
尝试的解决方案#2
t.model.set({fieldErrors: null},{silent: true});
t.model.set({fieldErrors: JSONResponse});
当进行调用并且用户具有相同的 JSONResponse 时,这些都不会导致第二次触发更改事件。