javascript - vue 計算屬性怎么傳參
問題描述
計算屬性怎么傳參?
<ul> <li v-for='item in goods' : v-text='item.name'></li></ul>data: { goods: [{id: 2,type: 3,name: ’薯片’ },{id: 3,type: 5,name: ’冰紅茶’}]},computed: { goodsType: function(type){switch (type) { case 3:return 'color: #ff9900'break; case 5:return 'color: #00BC0C'break;} }}
問題解答
回答1:傳不了參的,你可以寫成methods
回答2:首先,計算屬性里的方法是傳不了參的,根據你的代碼我想你想要實現的是根據type的改變去返回顏色,那么你應該明白的是計算屬性返回的值只跟它里面的依賴有關,當依賴改變的時候就會觸發計算屬性去重新計算然后改變值,所以你應該讓type變成該vm的一個數據,進而成為該計算屬性的依賴。簡單代碼如下:
data: { goods: [], type: 0 //這個type作為你后面計算屬性的依賴項,通過其他方法改變它的值即可。},computed: { goodsType: function(){//這里將會依賴于此vm的type值,當type值改變,就會重新計算switch (this.type) { case 3:return 'color: #ff9900'break; case 5:return 'color: #00BC0C'break;} }}回答3:
這個需求用一個對象實例數據不就可以解決了嗎?
colors: { 3: ’#ff9900’, 5: ’#00BC0C’}
綁定 style 為 {color: colors[item.type]}
回答4:https://cn.vuejs.org/v2/guide...計算-setter
計算屬性默認只有 getter ,不過在需要時你也可以提供一個 setter :
// ...computed: { fullName: { // getter get: function () { return this.firstName + ’ ’ + this.lastName }, // setter set: function (newValue) { var names = newValue.split(’ ’) this.firstName = names[0] this.lastName = names[names.length - 1] } }}// ...
相關文章:
1. docker鏡像push報錯2. 關docker hub上有些鏡像的tag被標記““This image has vulnerabilities””3. html5 - datatables 加載不出來數據。4. Docker for Mac 創建的dnsmasq容器連不上/不工作的問題5. node.js - mongodb查找子對象的名稱為某個值的對象的方法6. docker 下面創建的IMAGE 他們的 ID 一樣?這個是怎么回事????7. 運行python程序時出現“應用程序發生異常”的內存錯誤?8. html5和Flash對抗是什么情況?9. 測試自動化html元素選擇器元素ID或DataAttribute [關閉]10. 前端 - @media query 使用出現的問題?

網公網安備