如何在方法中使用 Vue prop 作为变量?
How to use Vue prop as variable in method?
我刚接触 Vue,很难掌握所有概念。我目前正在构建一个 Laravel 应用程序,并且正在使用 Vue 来补充一些视图。我想做的是在使用 Vue 组件(Laravel Nova 卡)设置的道具的帮助下对我的后端 API 进行非常简单的调用。
我有一个 account_id
可以通过这样的道具访问:
resource.fields[3].value
然后我尝试调用 api 并保存与帐户相关的数据
data() {
return {
account: {
name: '',
location: '',
type: ''
}
};
},
methods: {
getAccount() {
let vm = this;
var account_id = vm.resource.fields[3].value;
page_url = page_url || '/api/accounts/${account_id}';
fetch(page_url)
.then(res => res.json())
.then(res => {
this.account = res.data;
})
.catch(err => console.log(err));
}
}
然后在我的视图中渲染它:
<h1>{{ account.name }}</h1>
<p>{{ account.location }}</p>
<p>{{ account.type }}</p>
我的所有端点都是正确的 - 当我访问 app.dev/api/accounts/{id}
时,我得到一个包含我所有字段的 JSON 数组。但是,当我尝试渲染它时,我在视图中看不到任何数据。
我怎样才能做到这一点?
我认为首先你需要检查对服务器的请求是什么 URL 已被请求。
所以,我认为在这里 page_url = page_url || '/api/accounts/${account_id}';
你应该像这样使用反引号 (`) page_url = page_url || `/api/accounts/${account_id}`;
如果所有这些都不适合您。我想你可以通过 props
data() {
return {
account: {
name: '',
location: '',
type: ''
}
};
},
props: ['account_id'],
methods: {
getAccount() {
let vm = this;
var account_id = vm.resource.fields[3].value;
page_url = page_url || `/api/accounts/${this.account_id}`;
fetch(page_url)
.then(res => res.json())
.then(res => {
this.account = res.data;
})
.catch(err => console.log(err));
}
}
在调用者组件中,使用 v-bind="account_id" 到 prop
到此组件。
希望对你有帮助。
我刚接触 Vue,很难掌握所有概念。我目前正在构建一个 Laravel 应用程序,并且正在使用 Vue 来补充一些视图。我想做的是在使用 Vue 组件(Laravel Nova 卡)设置的道具的帮助下对我的后端 API 进行非常简单的调用。
我有一个 account_id
可以通过这样的道具访问:
resource.fields[3].value
然后我尝试调用 api 并保存与帐户相关的数据
data() {
return {
account: {
name: '',
location: '',
type: ''
}
};
},
methods: {
getAccount() {
let vm = this;
var account_id = vm.resource.fields[3].value;
page_url = page_url || '/api/accounts/${account_id}';
fetch(page_url)
.then(res => res.json())
.then(res => {
this.account = res.data;
})
.catch(err => console.log(err));
}
}
然后在我的视图中渲染它:
<h1>{{ account.name }}</h1>
<p>{{ account.location }}</p>
<p>{{ account.type }}</p>
我的所有端点都是正确的 - 当我访问 app.dev/api/accounts/{id}
时,我得到一个包含我所有字段的 JSON 数组。但是,当我尝试渲染它时,我在视图中看不到任何数据。
我怎样才能做到这一点?
我认为首先你需要检查对服务器的请求是什么 URL 已被请求。
所以,我认为在这里 page_url = page_url || '/api/accounts/${account_id}';
你应该像这样使用反引号 (`) page_url = page_url || `/api/accounts/${account_id}`;
如果所有这些都不适合您。我想你可以通过 props
data() {
return {
account: {
name: '',
location: '',
type: ''
}
};
},
props: ['account_id'],
methods: {
getAccount() {
let vm = this;
var account_id = vm.resource.fields[3].value;
page_url = page_url || `/api/accounts/${this.account_id}`;
fetch(page_url)
.then(res => res.json())
.then(res => {
this.account = res.data;
})
.catch(err => console.log(err));
}
}
在调用者组件中,使用 v-bind="account_id" 到 prop
到此组件。
希望对你有帮助。