91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在VUE中為對象添加屬性

發布時間:2021-03-02 15:33:41 來源:億速云 閱讀:1321 作者:戴恩恩 欄目:web開發

這篇文章主要介紹了如何在VUE中為對象添加屬性,此處通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考價值,需要的朋友可以參考下:

Vue的優點

Vue具體輕量級框架、簡單易學、雙向數據綁定、組件化、數據和結構的分離、虛擬DOM、運行速度快等優勢,Vue中頁面使用的是局部刷新,不用每次跳轉頁面都要請求所有數據和dom,可以大大提升訪問速度和用戶體驗。

data中定義的數據集對象mindData格式示例如下

mindData: [
{label:'清醒',value:'清醒'}, {label:'朦朧',value:'朦朧'},
{label:'嗜睡',value:'嗜睡'}, {label:'昏睡',value:'昏睡'},
{label:'譫妄',value:'譫妄'}, {label:'模糊',value:'模糊'}]

1) 通過post調用接口獲取minData對象,遍歷添加屬性value和content(方便后續通過v-model設置綁定radio控件的選擇結果值value)

this.$http.post('XXXXXXXXXXXXXXXXXXXXXXXX', {
parms:'xxx'
}).then(res => {
letsel= this
sel.mindData= res.data
for(letitemofsel.mindData) {
item.value= ''
item.content=''
}
})

2) 這里我自定義了radio控件,部分代碼如下

<mt-cell:title="label"class="zm-radio mint-field">
<input:placeholder="placeholder"
type="text"
:readonly="!editable"

v-model="currentContent"
@click="onHandleClick"
class="mint-field-core"/>
<spanclass="mintui mintui-back reset" @click="popupVisible=true"></span>
<mt-popupclass="zm-radio-popup"
position="bottom"
v-model="popupVisible"
popup-transition="popup-fade"
:
ref="pop">
<zm-container>
<zm-mainref="zmRadioMain">
<div@click="popupVisible=false">
<mt-radio
:title="label"
align="right"
v-model="currentValue"
:options="options">
</mt-radio>
</div>
</zm-main>
</zm-container>
</mt-popup>
</mt-cell>

export default{
watch: {
popupVisible() {
this.options= this.dictItems
this.currentValue= this.value
letheight= this.options.length * 48
letmaxHeight= window.innerHeight * 0.5
if(height> maxHeight) {
this.popupHeight= maxHeight+ 'px'
letscrollHeight= maxHeight* maxHeight/ height
this.$refs.zmRadioMain.setScroll(scrollHeight,window.innerWidth)
}
},
currentValue() {
console.log('radio_currentValue:'+ this.currentValue)
this.$emit('input',this.currentValue)
letcontent= this.content
letlabel= ''
for(letitemof this.options) {
if(_.isEqual(item.value,this.currentValue)) {
label= item.label
break
}
}
this.currentContent= content
}

3) 綁定到自定義的radio控件上

<zm-radiolabel="單選:"
:editable="false"
:dict-data="mindData"
:content.sync="data.content"
v-model="data.value"></zm-radio>

賦值的關鍵代碼如下

watch: {
popupVisible() {
this.options= this.dictItems
this.currentValue= this.value

彈出選項框列表的時候,會把當前文本上的value值賦值給currentValue對象,這樣下拉框就會自動定位顯示原先的選項值,期望達到的效果如下

如何在VUE中為對象添加屬性

乍看之下,沒什么問題,運行后發現

如何在VUE中為對象添加屬性

點擊下拉框,彈出選項列表,怎么數據沒有通過v-model綁定上去,并且radio的value和lable值一直是空

如何在VUE中為對象添加屬性

搗鼓了很久,測試發現通過定義mindRadio對象的方式綁定在zm-radio對象上,顯示效果是能獲得期望結果,那問題很明顯,對象屬性的創建有問題

<zm-radiolabel="單選:"
:editable="false"
:dict-data="mindData"
:content.sync="mindRadio.content"
v-model="mindRadio.value"></zm-radio>

data() {
return{
mindRadio: {
code:'',
value:''
}
}

經過vue官方資料查詢,提供了vue.set方法,通過以下方法解決了設置對象屬性的問題

如何在VUE中為對象添加屬性

this.$http.post('XXXXXXXXXXXXXXXXXXXXXXXX', {
parms:'xxx'
}).then(res => {
letsel= this
sel.mindData= res.data
for(letitemofsel.mindData) {
sel.$set(item,'value','')
sel.$set(item,'content','')
}
})

到此這篇關于如何在VUE中為對象添加屬性的文章就介紹到這了,更多相關如何在VUE中為對象添加屬性的內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

土默特右旗| 荥阳市| 涡阳县| 保定市| 河间市| 隆子县| 尉氏县| 乌拉特前旗| 礼泉县| 如皋市| 鄂州市| 巴彦县| 黎平县| 承德县| 光山县| 沾益县| 亚东县| 福海县| 新疆| 清丰县| 夹江县| 迁安市| 沽源县| 大名县| 平乡县| 吴旗县| 普兰县| 大渡口区| 开平市| 河南省| 浦东新区| 商都县| 裕民县| 水城县| 四川省| 肇东市| 蓬溪县| 林甸县| 宾阳县| 台南县| 乌拉特后旗|