我正在试图找出完成自定义更新的“正确”方法
Backbone.js模型中的函数.我正在尝试做的一个例子是:
var Cat = Backbone.Model.extend({
defaults: {
name : 'Mr. Bigglesworth',
location : 'Living Room',
action : 'sleeping'
},
sleep: function () {
// POST /cats/{{ cat_id }}/action
// { action: "sleep" }
},
meow: function () {
// POST /cats/{{ cat_id }}/action
// { action: "meow" }
}
})
据我所知,Backbone.Collection.save()方法只执行
以下:
POST /cats/{{ cat_id }}
{ name: 'Mr. Bigglesworth', location: 'Living Room', action: '{{ value }} '}
但我正在使用的API不会让我以这种方式改变行动,只能通过:
POST /cats/{{ cat_id }}/action
{ action: "{{ value }}" }
希望这有道理吗?
任何帮助,将不胜感激.
解决方法:
调用save时,可以将URL作为参数传递.也许你可以这样做:
var Cat = Backbone.Model.extend({
urlRoot: '/cats/',
defaults: {
name : 'Mr. Bigglesworth',
location : 'Living Room',
action : 'sleeping'
},
sleep: function () {
var custom_url = this.urlRoot + this.id + "/action";
this.save({}, { url: custom_url});
// POST /cats/{{ cat_id }}/action
// { action: "sleep" }
},
});
见:Posting form data using .save() to pass url parameters.
如果您始终希望在更新时使用自定义URL,也可以实现同步方法以使用其他URL.例如,见:backbone.js use different urls for model save and fetch.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。