17 backbone.js
backbone.js的一个已知功能是,当您设置未更改的数据时,它不会触发更改事件,也不会通过验证.然而,当我存储来自存储后端验证结果的AJAX调用的JSON响应时,我需要触发更改事件.如果用户一直保持提交表单,同时将相同的字段留空,则后端验证将返回相同的JSON结果,当我将其保存到模型时,它不会触发更改事件.
我在AJAX成功回调中尝试过的一些事情,我将数据设置到模型中:
t.model.unset('fieldErrors',{silent: true});
t.model.set({fieldErrors: JSONResponse});
Run Code Online (Sandbox Code Playgroud)
t.model.set({fieldErrors: null},{silent: true});
t.model.set({fieldErrors: JSONResponse});
Run Code Online (Sandbox Code Playgroud)
这些都不会导致更改事件在进行调用时第二次触发并且用户具有相同的JSONResponse.
Sco*_*leo 26
手动触发更改事件:
t.model.trigger('change', t.model);
Run Code Online (Sandbox Code Playgroud)
要么
t.model.trigger('change:fieldErrors', t.model, newFieldErrorsValue);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18154 次 |
| 最近记录: |