當我有一個像
的textarea時<textarea v-model="foo.abc.text"></textarea>
如果foo或foo.abc還不存在,那么
vue就會洗掉部分DOM,或者給我一個空白頁面。
它從未恢復。
無論我是否使用 vue 的除錯版本,僅這一點就很令人惱火。
如果我嘗試使用之前有人建議我使用的方法,例如
<textarea v-model="foo?.abc?.text" ></textarea>
那么我還是不走運,我推測我使用這些問號得到了一個 "rvalue",而我需要的是一個變數位置。
我如何用盡可能少的技巧,讓v-model在以后存在,即使它現在不存在(后期系結)?
uj5u.com熱心網友回復:
只要相應地塑造你的資料并以空值初始化它:
data(){
return {
foo: {
abc: {
text: ''。
}
}
}
}
你可以稍后填充它,例如使用api呼叫的結果,但最好還是正確地初始化資料
。uj5u.com熱心網友回復:
我建議采用:value @input的方式。它允許對輸入模型的更多控制,并且不需要隱藏它。
<textarea :value="!!foo && foo.abc.text" @input="(val) => !foo && (foo.abc.text = val)" />
你甚至可以在一個驗證器中掛鉤:
<textarea
:value="!!foo&& foo.abc.text"
@input="(val) => !foo && (foo.abc.text = val)"
:rules="v => !v && '該物件未被初始化'"
/>
uj5u.com熱心網友回復:
我找到了一個我可以接受的解決方案,然后我得到了一個相同方向的評論:
有條件地顯示textarea。v-if似乎可以做到這一點,但我認為它屬于 "詭計 "的范疇(angularjs會更寬松)。
v-if似乎可以做到這一點,但我認為它屬于 "詭計 "的范疇。
<textarea v-if="foo!=null" v-model="foo.abc" ></textarea>
如果某些東西不完全正確,隱藏組件的癥狀不是vue.js的最佳部分。最好是把它們顯示出來,并把它們染成紅色。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/310016.html
標籤:
