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
所以,如果要指定路由参数,只需要给一个空对象作为第二个参数即可。
我定义了一个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
所以,如果要指定路由参数,只需要给一个空对象作为第二个参数即可。