我想根據在子描述中找到的資料觸發 3 種方法之一。截至目前,如果資料是“視頻”,則它可以正常作業,如果還有其他內容,它會觸發 myClick2 方法。我正在嘗試添加第三個選項,以查看它是否顯示“海報”。如果它說海報,則觸發另一種方法(myClicky)。其他任何內容,請顯示 myClick2。
new Vue({
el: "#app",
data: {
chocs:[]
},
methods: {
handleTileClick: function(){
alert("test");
},
myClick2: function(){
alert("test2");
},
myClicky: function(){
alert("tested");
},
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div class="card" v-on:click="choc.subdescription==='Video'?handleTileClick():myClick2()"></div>
</div>
uj5u.com熱心網友回復:
您可以定義一個新方法,該方法接受subdescription并回傳要呼叫的函式。這將用作點擊處理程式的值:
new Vue({
el: "#app",
data: () => ({
chocs: [
{ subdescription: 'Video' },
{ subdescription: 'Poster' },
{ subdescription: 'Other' }
]
}),
methods: {
getOnClickFn: function(subdescription) {
let fn;
switch(subdescription) {
case 'Video':
fn = this.handleTileClick;
break;
case 'Poster':
fn = this.myClicky;
break;
default:
fn = this.myClick2;
break;
}
return fn;
},
handleTileClick: function() { alert("test"); },
myClick2: function() { alert("test2"); },
myClicky: function() { alert("tested"); }
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div
class="card"
v-for="{ subdescription } in chocs"
:key="subdescription"
@click="() => getOnClickFn(subdescription)()"
>Click {{subdescription}}</div>
</div>
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/368233.html
標籤:Vue.js
上一篇:如何修復“未知”型別的物件?
下一篇:Laravel強化,Vuex。陣列到字串轉換錯誤。FortifyServiceProvider.php第40行。發生了什么?
