这是backbone.js的一个已知特性,当您设置未更改的数据时,它不会触发change事件,也不会进行验证。但是,我需要触发change事件,因为我正在存储来自 AJAX 调用的JSON响应,该响应存储后端验证的结果。如果用户在提交表单时将同一字段留空,后端验证将返回相同的JSON结果,并且当我将其保存到模型中时,它不会触发change事件。
我在 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时,这两种情况都不会导致第二次触发change事件。
2条答案
按热度按时间bgibtngc1#
手动触发更改事件:
或
kzmpq1sx2#
请参见以下对话:
Can I force an update to a model's attribute to register as a change even if it isn't?