JavaScriptMVC:如何使用模型findAll封装这些URL?

时间:2013-04-27 07:51:16

标签: javascript javascriptmvc canjs canjs-model

我有以下网址:

/tasks/             // Return a list of JSON
/task/next-week/    // Return a list of JSON

我在JSMVC中有任务模型:

$.Model('Task', {

    findAll: 'GET /tasks/',
    findOne: 'GET /task/{id}'

});

我如何支持/task/next-week/

以下代码:

Task.findAll({'range': 'next-week'})

会产生请求/tasks/?range=next-week,但这对我的项目来说是错误的。

我如何正确封装服务,因此请求通常看起来像/task/next-week/

1 个答案:

答案 0 :(得分:1)

您可以为findAll指定一项功能并制作自定义ajax请求,例如the docs中建议的内容:

$.Model('Task', {

    findAll: function(params, success, error){

        if (!params.range) params.range = '';

        return $.ajax({
            url: '/tasks/' + params.range,
            type: 'get',
            dataType: 'json task.models',
            success: success,
            error: error
        });
    },

    findOne: 'GET /task/{id}'

});