0

can.Model のベース URL を指定する方法はありますか?

サーバー パスが次のようにハードコードされていることがわかります。

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 を引き続き構成できるようにする方法です。モデルは標準的な方法です。

4

2 に答える 2

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モデルの静的メソッドにすることも、より適切な場所 (アプリケーションのブートストラップなど) に配置することもできます。

于 2013-07-19T18:47:21.763 に答える
0

resource次のプロパティを使用できます。

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

ドキュメント: http://canjs.com/docs/can.Model.resource.html

于 2014-12-17T16:57:59.030 に答える