當我使用v-bind:style 來使用動態值時,我遇到了v-bind:style 不起作用的問題,但我確信v-bind:style 得到了正確的值(:style='{控制台中的color : red(任何其他值) }') 和樣式部分中的css 反映成功。為什麼不使用 v-bind 呢?任何想法 ? ?非常感謝。
<div class="l-modal" v-if="modalVisible1"> <div class="p-modal" @click="hide_modal" :style='{ color : titleColor1 }' ref="test"> <p>{{titleTxt1}}</p> <p>{{contentTxt1}}</p> <p>{{endTxt1}}</p> <button class="p-modal__btn">{{buttonTxt1}}</button> </div> </div> <div class="l-modal__bg" v-if="modalBgVisible1" @click="hide_modal"></div>
data () { return { selected_title_color1:'', titleColor1:'', colors:['紅色','藍色','黃色','粉色','土地色','水藍色','灰色','淺綠色','橙色'], colors_dic:{紅色:'red',藍色:'blue',黃色:'yellow',粉色:'pink',土地色:'blawn',水藍色:'aqua',灰色:'gray',淺綠色:'palegreen',橙色:'orange'}, } }, watch:{ selected_title_color1: function () { this.titleColor1 = this.colors_dic[this.selected_title_color1]; } },
請檢查以下程式碼片段,看起來一切正常:
如上所述,您應該使用
compulated
屬性作為樣式。這也會自動反映道具的任何變化。
如果您有某些條件,您也可以根據計算的回呼函數中的值修改這些值。我添加了一個暗模式範例來闡明這種方法。
然後使用
:style="style"
將其附加到您的 div。我這邊的提示。我將外包用於設定顏色的程式碼並將該方法綁定到更改顏色的事件,而不是使用觀察器。這可以使您的應用程式更加靈活並清理它。但您的做法也有效。