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

Vue.js: vue-resource calling resource.save() with path parameter

我定义了一个vue资源:

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 时,请求 url 并不像预期的那样:

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

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

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

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

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

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

如果给出一个参数,它会被视为正文负载。

如果给定两个参数,第一个是路由参数,第二个是body payload

所以,如果要指定路由参数,只需要给一个空对象作为第二个参数即可。