Backbone.js 自定义模型请求
Backbone.js custom model request
有没有什么方法可以创建您自己的 ajax 方法来发出 POST 请求而不是使用保存?
保存不仅会触发 AJAX 请求,还会触发事件和验证,因此我不会编写 "own" 保存方法。
但是,您始终可以编写如下模型函数:
var SomeModel = Backbone.Model.extend({
urlRoot: "/some/url",
altSave: function () {
$.post(this.urlRoot, {
/*assemble your post data*/
}, function (response) {
});
}
});
var s = new SomeModel();
s.altSave();
调用 s.altSave();
将触发 POST 请求。
没错,而且有效,但我认为这是更好的解决方案:
'use strict';
define([
'underscore',
'backbone',
'config/appConfig'
],function(_,Backbone,Config){
var StatsModel = Backbone.Model.extend({
urlRoot: Config.urlStats,
url: function() {
var url = this.urlRoot + "/resource";
return url;
},
defaults: {
metricID: '',
groupByID: ''
},
requestStats: function(opts) {
var url = this.url(),
options = {
url: url,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify(this.attributes)
};
_.extend(options, opts);
return (this.sync || Backbone.sync).call(this, null, this, options);
}
});
return StatsModel;
});
非常感谢
有没有什么方法可以创建您自己的 ajax 方法来发出 POST 请求而不是使用保存?
保存不仅会触发 AJAX 请求,还会触发事件和验证,因此我不会编写 "own" 保存方法。 但是,您始终可以编写如下模型函数:
var SomeModel = Backbone.Model.extend({
urlRoot: "/some/url",
altSave: function () {
$.post(this.urlRoot, {
/*assemble your post data*/
}, function (response) {
});
}
});
var s = new SomeModel();
s.altSave();
调用 s.altSave();
将触发 POST 请求。
没错,而且有效,但我认为这是更好的解决方案:
'use strict';
define([
'underscore',
'backbone',
'config/appConfig'
],function(_,Backbone,Config){
var StatsModel = Backbone.Model.extend({
urlRoot: Config.urlStats,
url: function() {
var url = this.urlRoot + "/resource";
return url;
},
defaults: {
metricID: '',
groupByID: ''
},
requestStats: function(opts) {
var url = this.url(),
options = {
url: url,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify(this.attributes)
};
_.extend(options, opts);
return (this.sync || Backbone.sync).call(this, null, this, options);
}
});
return StatsModel;
});
非常感谢