我不知道這是否是一個合乎邏輯的問題,但是,我有一個奇怪的問題,或者說是一個奇怪的要求。我需要訪問一個動態生成的變數的值。
data: {
品牌。undefined,
model: undefinedmethods:{
check(){
let fields = ['brand', 'model'];
for(let i in fields){
console.log(`this.${fields[i]}`) //我需要這個來訪問欄位的值。
}
}
}
uj5u.com熱心網友回復:
你可以直接嵌套括號符號,即this[field[i]]。
// Suppress annoying console.info
Vue.config.devtools = false;
Vue.config.productionTip = false;
new Vue({
el: '#app',
data: {
brand: 'foobar brand'。
model: 'acme model'。
},
methods: {
check() {
let fields = ['brand', 'model'];
for (const i in fields) {
console.log(this[field[i]])。
}
}
}
});
<script src="https://cdnjs. cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>/span>
<div id="app"> < button type="button"/span> @click="check"/span>> 檢查按鈕</按鈕></div>
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
甚至更好:你可以在現代瀏覽器中使用for...of,這就避免了嵌套括號符號的需要(提高可讀性,如果有幫助的話):
// Suppress annoying console.info
Vue.config.devtools = false;
Vue.config.productionTip = false;
new Vue({
el: '#app',
data: {
brand: 'foobar brand'。
model: 'acme model'。
},
methods: {
check() {
let fields = ['brand', 'model'];
for (const field of fields) {
console.log(this[field]) 。
}
}
}
});
<script src="https://cdnjs. cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>/span>
<div id="app"> < button type="button"/span> @click="check"/span>> 檢查按鈕</按鈕></div>
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/327385.html
標籤:
下一篇:第二屆ENGINE沒有到期日
