骨干自定义方法

时间:2013-12-03 19:18:38

标签: backbone.js

我正在使用Backbone构建购物车,我很难确定如何构建与服务器的交互。当用户点击结账时(以及验证后)我需要:

  1. 使用order.save()保存订单 - 因为订单是在客户端上创建的,所以它将点击服务器上的路由并返回一个ID。在处理订单之前我需要ID。

  2. 成功后,我在订单上调用了一个自定义方法,该方法再次点击服务器,向卡处理服务发出请求。

  3. 我要么向客户报告错误,让他修改并重试或更新订单记录并在数据库中创建付款记录。

  4. 以下是订单模型中的processOrder方法:

    processOrder: function() {
        var order = this.toJSON();
        $.ajax({
          url: '/api/order/process',
          type: 'POST',
          data: order,
          dataType: 'json',
          success: function(res) {
            console.log(res);
          },
          error: function(err) {
            //show error message
            console.log('error: ' + JSON.stringify(err));
          }
       });
      }
    

    这是我在视图中提交表单的地方

    saveOrder: function() {
      ...
      var order = this.order;
      order.set(this.frmJSON);
      order.save(this.frmJSON, {
        success: function(res) {
          console.log('order saved...');
          order.processOrder();
        },
        error: function(err) {
          console.log(JSON.stringify(err));
        }
      });
    }
    

    订单保存在服务器上,订单会在其中插入ID。当我调用processOrder时,它会一直工作,直到它进入ajax调用。它永远不会到达服务器,浏览器挂起而没有错误。有没有更好的方法来构建这些步骤?

0 个答案:

没有答案