Backbone.js自定义模型请求

时间:2015-07-22 07:02:27

标签: javascript backbone.js

有没有办法创建自己的ajax方法来发出POST请求而不是使用save?

2 个答案:

答案 0 :(得分: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请求。

答案 1 :(得分: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;
});

非常感谢