更新骨干模型

时间:2012-07-20 22:13:17

标签: javascript backbone.js

我创建了一个这样的骨干集合,在我的视图中实例化

define(['underscore','backbone','models/task'],function( _,Backbone,Task) {
    var TaskCollection = Backbone.Collection.extend({
        //Model
        model:Task,
        //api url
        url:'',

        methodToURL: {
        'read': './api/tasks/index',
        'create': './api/tasks/task',
        'update': './api/tasks/task',
        'delete': './api/tasks/task'
        },

        sync: function(method, model, options) {
            options = options || {};
            options.url = this.methodToURL[method.toLowerCase()];

            Backbone.sync(method, model, options);
        },
        //construct
        initialize: function() {
            this.sort_key = 'end';
            this._model = new Task();
            this.fetch();
        },

        comparator: function(a,b) {
            a = a.get(this.sort_key);
            b = b.get(this.sort_key);
            return a > b ?  1
                 : a < b ? -1
                 :          0;
        },

        mark_complete: function(task_id) {
            var task_status = 0;
            console.log(this._model);
            this._model.save({id:task_id,task_status:task_status});
        },

        mark_incomplete: function(task_id) {

        },

        sort_by_status: function() {
            this.sort_key = 'task_status';
            this.sort();
        },

        sort_by_task_tag: function() {
            this.sort_key = 'task_group';
            this.sort();
        }
    });
    return TaskCollection;
});

单击dom元素时,将调用该集合上的mark_complete方法。 “this._model.save({id:task_id,task_status:task_status});”发出PUT请求,但没有发送参数。

0 个答案:

没有答案