v-ifで、trueだった場合に、v-model.trimで文字数をカウントしたい場合。
v-ifの中にv-model.trimが入っているので、いわゆるネスト
この場合、new Vueを続けて書いてもうまく行かない
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | < div id = "app" > < div v-if = "display" > < div id = "job" > < input type = "text" name = "title" v-model.trim = "message" maxlength = "20" placeholder = "20文字以内で入力してください" > < span class = "char-length" >{{ message.length }}/20</ span > </ div > </ div > < div v-else> < p >表示なし</ p > </ div > </ div > < script > new Vue({ el: "#app", data: { display: true } }); new Vue({ el: "#job", data: { message: "what up bro!"} }); </ script > |
どうするかというと、子供のインスタンスのidに”v-pre”をつける
1 2 3 4 | < div id = "job" v-pre> < input type = "text" name = "title" v-model.trim = "message" maxlength = "20" placeholder = "20文字以内で入力してください" > < span class = "char-length" >{{ message.length }}/20</ span > </ div > |
すると、上手く表示されます。
嵌ったー、15分くらい