問題描述:select 元件綁定了 v-model 和 placeholder,當 v-modal 綁定的屬性為空時,select 元件的 placeholder 屬性不顯示。
// 初始化 level = ''
<a-select v-model="level" placeholder="選擇日志級别" allow-clear>
<a-select-option value="info">一般</a-select-option>
<a-select-option value="warn">警告</a-select-option>
<a-select-option value="error">錯誤</a-select-option>
</a-select>
打開控制台,我們可以看到 class 為 ant-select-selection__placeholder,即 placeholder 的 DOM 元素上,添加了一個 display:none 屬性,進而被隐藏了。
如果隻是單純的把 ant-select-selection__placeholder 下面的 display: none 屬性去掉的話,輸入框有選擇值後,就會出現 v-model 的值和 placeholder 的值重疊了。
placeholder是目前元件值為空時顯示的替換文本,隻有值為空的時候才會顯示。當元件綁定了v-model且綁定值初始化時,值不再是空,即時初始化值為’'也視為有值,是以placeholder自然就不會顯示。
在antd中如果不進行初始化,那麼值就是undefined,可顯示placeholder