为can.Model指定基本服务器URL的选项?

时间:2013-07-19 03:13:07

标签: canjs canjs-model

有没有办法为can.Model指定基本网址?

我看到服务器路径是这样硬编码的:

Wine = can.Model({
    findAll : 'GET //localhost/Cellar-CanJS-Bootstrapped/api/wines',
    findOne : 'GET //localhost/Cellar-CanJS-Bootstrapped/api/wines/{id}',
    create  : 'POST //localhost/Cellar-CanJS-Bootstrapped/api/wines',
    update  : 'PUT //localhost/Cellar-CanJS-Bootstrapped/api/wines/{id}',
    destroy : 'DELETE //localhost/Cellar-CanJS-Bootstrapped/api/wines/{id}'
},{
})

我正在寻找的方法是指定模型的基本URL,以便我可以继续配置我的can.Model是标准方式。

2 个答案:

答案 0 :(得分:2)

不幸的是,设置模型基本URL不是内置功能,而是计划用于下一个次要版本。这就是我现在通常这样做的方式:

function getUrl(url, method) {
    method = method || 'GET';
    return method + ' ' + BASE_URL + '/' + url;
}

Wine = can.Model({
    findAll : getUrl('api/wines');
    findOne : getUrl('api/wines/{id}'),
    create  : getUrl('api/wines', 'POST'),
    update  : getUrl('wines/{id}', 'PUT'),
    destroy : getUrl('api/wines/{id}', 'DELETE')
},{
});

getUrl可以是Model静态方法,也可以位于更好的位置(例如应用程序引导程序)。

答案 1 :(得分:0)

您可以使用resource属性:

Wine = can.Model.extend({
    resource : "//localhost/Cellar-CanJS-Bootstrapped/api/wines",
},{});

文档:http://canjs.com/docs/can.Model.resource.html