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

Posted

技术标签:

【中文标题】Vue.js:vue-resource 使用路径参数调用 resource.save()【英文标题】:Vue.js: vue-resource calling resource.save() with path parameter 【发布时间】:2016-08-30 22:52:45 【问题描述】:

我定义了一个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 时,请求的url 并不像预期的那样:

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

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

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

【问题讨论】:

【参考方案1】:

只要在方法调用上添加第二个参数就可以了:

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

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

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

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

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

【讨论】:

以上是关于Vue.js:vue-resource 使用路径参数调用 resource.save()的主要内容,如果未能解决你的问题,请参考以下文章

vue.js 的插件 vue-resource

Vue.js + vue-resource + vue-router = 词法声明错误?

Vue.js——vue-resource全攻略

Vue.js——vue-resource全攻略

Vue.js——vue-resource全攻略

Vue.js——vue-resource全攻略