2013-06-25 39 views
1

在骨干网和服务器上,我在id(api/order/ID/call和api/order/ID/status)之后放置了具有不同端点的请求。我需要根据不同的行为明确地设置这些。我得到的地位延长工作/重写车型同步:骨干设置保存(PUT)请求与不同的URL端点

sync: function(method, model, options){ 

    if (method == 'PUT' || method == 'update') { 

     model.url = '/venues/orders/' + model.id + '/status'; 

     var jsonData   = {}; 
      jsonData.staffid = 1; 
      jsonData.groupid = 0; 
      jsonData.statusid = this.get('status.statusid'); 

     //if the options url is set use that otherwise use /status 
     if(options.url){ 
      model.url = options.url; 
     } 

     options.data = JSON.stringify(jsonData); 
    } 

    return Backbone.sync(method, model, options); 
} 

我有设置的选项链接通话功能:

CallToBar: function(el){ 

    log("CallToBar Action"); 

    el.preventDefault(); 
    el.stopPropagation(); 

    var target = $(el.currentTarget); 

    target.text('Calling...'); 
    var that = this; 

    this.model.save({}, { 
     url: '/venues/orders/' + this.model.id + '/call', 
     data: '', 
     success: function(){ 
      target.text('Called'); 

      timeout = setTimeout(function() { 

       if(!$(this.el).find('.additional-options').hasClass('hide')){ 
        that.orderClicked(); 
       } 
       target.text('Call to bar'); 

      }, 1500); 
     } 

    }); 

}, 

我希望有能力连接不同端点的网址理想与同步/保存/设置

回答

0

昨天我问了一个类似的问题。你有没有考虑过使用PATCH? http://backbonejs.org/#Model-save。这使您可以拥有单个终点,但是只允许您传递要更新的属性?例如model.save(attr,{patch:true});

+0

PATCH不是真的想让我需要的电话只是触发器我不想改变ATTR。此外,PATCH目前未在服务器上配置。 – Labithiotis