vue资源-动态判断http方法
Vue resource - dynamically determine http method
我想动态确定适当的 http 方法并进行单个 api 调用。但是,当我调用该方法时抛出异常。
我希望我做错了什么而不是 vue-resource
错误。有人有什么建议吗?谢谢
例如:
let method = this.$http.post
if (this.model.id) {
method = this.$http.put
}
method(
this.url,
this.model,
options
).then(response => {
this.$router.push(this.redirect_to)
}).catch(response => {
console.log(`Error: ${response.statusText}`)
})
A javascript TypeError
与消息 "this is not a function"
一起抛出
下面的代码有效,但有点冗长。
if (this.model.id) {
this.$http.put(
this.url,
this.model,
options
).then(response => {
this.$router.push(this.redirect_to)
}).catch(response => {
console.log(`Error: ${response.statusText}`)
})
} else {
this.$http.post(
this.url,
this.model,
options
).then(response => {
this.$router.push(this.redirect_to)
}).catch(response => {
console.log(`Error: ${response.statusText}`)
})
}
您需要将函数绑定到当前上下文。
let method = this.model.id ? this.$http.put.bind(this) : this.$http.post.bind(this)
或者只使用索引器方法。
let method = this.model.id ? 'put' : 'post'
this.$http[method](...).then(...)
我想动态确定适当的 http 方法并进行单个 api 调用。但是,当我调用该方法时抛出异常。
我希望我做错了什么而不是 vue-resource
错误。有人有什么建议吗?谢谢
例如:
let method = this.$http.post
if (this.model.id) {
method = this.$http.put
}
method(
this.url,
this.model,
options
).then(response => {
this.$router.push(this.redirect_to)
}).catch(response => {
console.log(`Error: ${response.statusText}`)
})
A javascript TypeError
与消息 "this is not a function"
下面的代码有效,但有点冗长。
if (this.model.id) {
this.$http.put(
this.url,
this.model,
options
).then(response => {
this.$router.push(this.redirect_to)
}).catch(response => {
console.log(`Error: ${response.statusText}`)
})
} else {
this.$http.post(
this.url,
this.model,
options
).then(response => {
this.$router.push(this.redirect_to)
}).catch(response => {
console.log(`Error: ${response.statusText}`)
})
}
您需要将函数绑定到当前上下文。
let method = this.model.id ? this.$http.put.bind(this) : this.$http.post.bind(this)
或者只使用索引器方法。
let method = this.model.id ? 'put' : 'post'
this.$http[method](...).then(...)