項目中有個需求,在表格里點擊某條數據彈出窗口進行修改值,當時彈出的是input上進行修改,所以當我點擊數據的時候,先進行回顯原先的數據,再進行修改。
點擊某條數據,彈出窗口,進行后台請求,將后台返回的數據名稱進行賦給這個名稱的input框
<input type="text" v-model="form.name"> methods:{ //請求數據 goodsList(id){ this.$request(this.$config.baseApi+'/user/address/index?uid='${id},'get') .then(res=>{ if (res.code===200){ //如果用這種方式直接賦值,很可能會在頁面上不能編輯,所以讓它強制刷新 //根據官方文檔定義:如果在實例創建之后添加新的屬性到實例上,它不會觸發視圖更新 // this.form.name=res.data.content //解決辦法:$set this.$set(this.form,'name',this.form.name) } }) } }
網上搜的還有一種解決方案就是直接在data里邊先列出變量,eg:
data(){ return{ form:{ name:' ' } } },
但當時項目的form里邊的變量不定,需要后台給出,所以只能通過第一中方法,用哪種方法還需要看情況而定