0

我正在使用backbone.marionette (1.0.0) 和node.js (0.10.22)。想知道为什么当我尝试使用 node.js REST 调用保存模型数据时,主干会添加额外的参数。

模型.js

 Backbone.Model.extend ({
     urlRoot: function (){
         return '/path/' + myApp.companyId;
    },
    defaults: {
       companyId: '',
       // other attributes
    },
    // doesn't use 'id' in model instead companyId
    idAttribute: 'companyId'

});

在加载视图之前,我会请求myApp.request ('entities:myModel')已发布的模型数据,model.fetch ()并且 node.js 后端将触发GET /path/1 路由。没有任何问题。

但是,当单击视图上的更新按钮时, this.model.save () 将被触发PUT /path/1/1。它应该是PUT /path/1,在 url 路径中只有一个“1”。

视图.js:

clicked: function () {
   var formData = Backbone.syphon.serialize (this);
   this.model.set (formData);
   var promise =  this.model.save ();
   promise.done ().fail ()
}

如何阻止backbone.sync 将额外参数附加到url 路径?感谢您抽出时间阅读本文,感谢您的帮助。

4

1 回答 1

0

您在urlRoot模型上设置不正确。它应该是

Backbone.Model.extend ({
  urlRoot: "path",
  // etc
});

Backbone 将自己添加 id。

如果要在函数中指定 id,请使用该url函数。

于 2013-11-14T10:07:05.450 回答