【问题标题】:backbone destroy doesn't send a DELETE HTTP主干销毁不发送 DELETE HTTP
【发布时间】:2014-06-19 14:36:24
【问题描述】:

当我创建我的模型时,我没有 id,这是我的函数 destroy 不起作用的原因,你能帮帮我吗

我有另一个 id,它是 clientId:

模型保存功能:

 save : function (){      
              var result =this.model.save({
                    ClientId: this.$('.clientId-field').val(),
                   companyName: this.$('.companyName-field').val()
                   } ,
   delete: function() {

   this.model.destroy();
    return false;
}

我的对象:

0: {ClientId:1, companyName:nom compagnie,…}
   companyName: "nom compagnie"

请帮帮我

child {collection: child, _deferProcessing: false, _listenerId: "l4", _events: Object, _queue: Backbone.BlockingQueue…}
_attributeChangeFired: false
_changing: false
_deferProcessing: false
_events: Object
_isInitialized: true
_listenerId: "l4"
_pending: false
_permitsUsed: 0
_previousAttributes: Object
_queue: Backbone.BlockingQueue
_relations: Object
attributes: Object
changed: Object
cid: "c5"
collection: child

【问题讨论】:

    标签: javascript backbone.js model destroy http-delete


    【解决方案1】:

    如果你想使用不同于id 的唯一键。那么您可以设置模型的idAttribute 以透明地从该键映射到 id。

    http://backbonejs.org/#Model-idAttribute

    var MyModel = Backbone.Model.extend({
    
       urlRoot : "/data/delete",   //root delete url 
    
       idAttribute: "clientId"
    });
    
    var myModel = new MyModel({
       clientId : "123"
    });
    
    myModel.destroy();
    

    在调用destroy 方法时,DELETE 请求将发送到 URL DELETE /data/delete/123

    【讨论】:

      【解决方案2】:

      当我这样做时,我的函数 this.model.save 发送一个 PUT HTTP 而不是一个 POST HTTP

         var ClientModel = Backbone.RelationalModel.extend({
          idAttribute: "ClientId",
          validation : {
               companyName : {
                     required: true,
                     msg: 'companyName is required.'
      }
       });
        return ClientModel;
      
       });
      

      你必须知道,我在调用我的函数 this.model.save 之前生成了我的 id

      save : function (){ 
                 var clientId= this.random ();
                var result =this.model.save({
                      ClientId: clientId,
                     companyName: this.$('.companyName-field').val()
                     } ,
       delete: function() {
      
       this.model.destroy();
         return false;
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-05
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        • 1970-01-01
        相关资源
        最近更新 更多