有没有什么办法可以创建自己的ajax方法来发出POST请求而不是使用save?Backbone.js自定义模型请求
0
A
回答
0
保存不仅会触发AJAX请求,而且会触发事件和验证,所以我不会写我自己的“保存”方法。 但是,你总是可以写像模特功能:
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请求。
0
这是正确的,它的作品,但我认为这是一个更好的解决方案:
'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;
});
非常感谢您
+0
不,因为:1.它覆盖了'Backbone.Model'的默认'url',这是不必要的,2.'Backbone.sync'的底层实现可能会改变,3.您必须挖掘Backbone源才能知道'return(this.sync || Backbone.sync).call(this,null,this,options)''真的发生了什么?你今天可能会知道,但几个月后你就会伪造它,想象新的开发者会发生什么。我的解决方案更直接,开发人员更友好,并且不需要您深入图书馆的来源。如果您关心编写可维护的代码,请使用它。 –
+0
确实,你是对的。 – mmontes11
相关问题
- 1. Laravel - 如何获得自定义请求类中的模型ID
- 2. Backbone.js模型未在视图中定义?
- 3. 自定义HTTP请求头
- 4. 模型绑定请求
- 5. php处理来自backbone.js的请求
- 6. backbone.js问题模块定义
- 7. 自定义模型绑定
- 8. 每个请求自动加载模型
- 9. 模型Backbone.js的
- 10. Backbone.js模型
- 11. 模型绑定自定义类型
- 12. Laravel:自定义模型类
- 13. linqpad + linq2sql自定义模型
- 14. 自定义UserAdmin模型
- 15. Rails自定义元模型?
- 16. 自定义模型关系
- 17. json数据自定义http请求
- 18. JSONArray自定义请求停止工作
- 19. AngularJS自定义标头请求
- 20. Android凌空自定义请求
- 21. HTTP请求的自定义缓存
- 22. .htaccess不读取自定义请求
- 23. 自定义Google脚本授权请求
- 24. 从MySQL请求自定义字段
- 25. Swagger - 自定义示例请求主体
- 26. 自定义变量和Utm.gif请求
- 27. 使用RESTAdapter自定义后请求
- 28. 在Ember中自定义请求格式
- 29. LINQPad请求自定义程序集
- 30. HttpWebRequest构建一个自定义请求?
可以,但有辩论至于是否这是一个不错的办法。查看http://stackoverflow.com/questions/11331604/backbone-js-ajax-calls进行更详细的讨论。 – snozza
简单的方法是使用'$ .ajax'和'type = post'来代替主干模型。你为什么想要这样做呢? – AdityaParab
我已经找到了解决方案。非常感谢你。 – mmontes11