Vue.js:vue-resource使用path参数调用resource.save()

时间:2016-05-05 08:17:27

标签: javascript rest mvvm vue.js vue-resource

我定义了一个vue-resource:

resources.js:

import Vue from 'vue'
import VueResource from 'vue-resource'

Vue.use(VueResource);

export const Team = Vue.resource('team{/id}{/action}');

那么,如果我在该资源上调用get方法:

api = require('.api/resources')
api.Team.get({
    id: 3233,
    action: 'details',
}).then(function(response) {
    // ....
});

此ajax调用请求:

/team/3233/details

问题:

但是当我使用.update.save而不是.get时,请求网址并不符合预期:

api = require('.api/resources')
api.Team.update({
    id: 3233,
    action: 'details',
}).then(function(response) {
    // ....
});

我只向/team发送请求,并在请求正文中传输所有参数。

如何在.save.update ajax调用中指定网址参数?

1 个答案:

答案 0 :(得分:2)

只需在方法调用上添加第二个参数即可:

api = require('.api/resources')
api.Team.update({
    id: 3233,
    action: 'details',
}, {}).then(function(response) {
    // ....
});

当vue-resource在一个带body的方法上调用ajax时,它接受一个或两个数据参数。

如果给出一个单一参数,则将其视为正文有效负载。

如果给出两个参数,则第一个是路由参数,而第二个是身体有效负载。

因此,如果要指定路由参数,只需将空对象作为第二个参数。