1.lazy
默认情况下,v-model在<input/>和<textarea>中通常是用户输入数据时绑定数据。如果在v-model后添加一个修饰符.lazy,它就会转变为在change事件中绑定数据。
<input v-model.lazy="msg"/>
<span>{{msg}}</span>
.lazy修饰符延迟了同步更新属性值的时机,即将原本绑定在input事件的同步逻辑转变为绑定在change事件上。
2.number
.number是用来将内容自动转换成数值的,用法是直接在v-model后加上.number。该修饰符只是对开始是数字的字符串有效,当数字有非数字字符时,属性值不再变化。
<input v-model.number="age" type="text"/>
3.trim
.trim的作用就是自动过滤用户输进去的首尾空格,用法和上边的连个修饰符一样,在v-model后面添加.trim。
<input v-model.trim="msg">
4.记事本案例
<div id="app">
<input type="text" v-model="newTodo" v-on:keyup.enter="addTodo"/>
<ul>
<li v-for="(todo,index) in todos">{{todo.text}}
<button v-on:click="removeTodo(index);">x</button>
</li>
</ul>
</div>
<Script>
var app = new Vue ({
el:"#app",
data :{
newTodo:"",
todos:[
{text:"买米"}
]
},
methods:{
addTodo:function(){
var text = this.newTodo.trim();
if(text){
this.todos.push({text:text});
}
this.newTodo = "";
},
removeTodo:function(index){
this.todos.splice(index,1);
}
}
})
</script>