Backbone.js 为什么要在url路径中添加额外的参数?
我正在使用backbone.marionete(1.0.0)和node.js(0.10.22)。不知道为什么在我尝试使用node.js REST调用保存模型数据时要添加额外的参数 model.jsBackbone.js 为什么要在url路径中添加额外的参数?,backbone.js,marionette,Backbone.js,Marionette,我正在使用backbone.marionete(1.0.0)和node.js(0.10.22)。不知道为什么在我尝试使用node.js REST调用保存模型数据时要添加额外的参数 model.js Backbone.Model.extend ({ urlRoot: function (){ return '/path/' + myApp.companyId; }, defaults: { companyId: '', //
Backbone.Model.extend ({
urlRoot: function (){
return '/path/' + myApp.companyId;
},
defaults: {
companyId: '',
// other attributes
},
// doesn't use 'id' in model instead companyId
idAttribute: 'companyId'
}))
在加载视图之前,我将使用发布了model.fetch()
的myApp.request('entities:myModel')
请求模型数据,node.js后端将触发GET/path/1
路由。没问题
但是,当在视图上单击更新按钮时,将触发this.model.save()PUT/path/1/1
。它应该是PUT/path/1
,url路径中只有一个“1”
view.js:
clicked: function () {
var formData = Backbone.syphon.serialize (this);
this.model.set (formData);
var promise = this.model.save ();
promise.done ().fail ()
}
如何阻止backbone.sync向url路径追加额外参数?感谢您抽出时间阅读本文,并感谢您的帮助。您在模型上设置的
urlRoot
不正确。应该是
Backbone.Model.extend ({
urlRoot: "path",
// etc
});
主干将自己添加ID
如果要在函数中指定ID,请使用url
函数