我对 Backbone 完全是个菜鸟,我现在只学习了大约 8 个小时,如果这个问题看起来很基础,我很抱歉。文档对此不是很清楚。
相关模型 Product
需要运行大量 Ajax 调用。在我的模型逻辑中,我需要根据特定条件在模型验证中运行至少 2 个 Ajax 调用。
不仅如此,当某些字段发生更改时,我还需要运行 Ajax 调用,因为每个字段都会触发从上次更改中冒出的自己的更改字段,即:
- 价格变化
- 模型通过服务器调用重新计算产品价格
- 同时,价格变化会触发模型的 vendor 变量发生变化
- vendor 变更必须在价格变更后执行 Ajax 调用。
所以我需要知道的是:基本上我应该如何将所有 Ajax 调用转换为 Backbone?这里最好的方法是什么?
最佳答案
我将用我的发现和解决方案来回答这个问题。
所以我已经完成了与所有 Ajax 调用的主干集成。我解决这个问题的方法是使用 jQuery 的 Promise API 从模型函数返回一个可用于链接的延迟对象。然后,我在界面中以链式方式使用了这个函数。
为了更好地解释,这里有一个例子:-假设我在 Product
类中有两个函数;一个名为 populateRecord
,另一个名为 set_price
。每个都执行自己的 Ajax 调用和处理。
在 View ProductView
中,我将放置一个名为 edit
的函数,该函数将处理如何以及何时调用这两个模型函数的逻辑,如下所示:
this.model.populateRecord().then(function(data){ return $this.model.set_price(data) })
将“业务”方面放入 View 中的方法效果很好,并且解决了许多问题。
希望这对其他人有帮助,
关于javascript - Backbone Ajax 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15612760/