“Vue从入门到实战:值绑定”的版本间的差异
来自CloudWiki
(创建页面,内容为“==应用背景== 对于单选按钮,复选框及选择框的选项,v-model 绑定的值通常是静态字符串 (对于复选框也可以是布尔值): <now…”) |
|||
第55行: | 第55行: | ||
==单选按钮== | ==单选按钮== | ||
+ | 单选按钮被选中时,v-model绑定的数据属性的值默认被设置为该单选按钮的value值,可以使用v-bind将<input>元素的value属性再绑定到另一个数据属性上,这样选中后的值就是这个value属性绑定的数据属性的值。 | ||
+ | |||
+ | <nowiki> | ||
+ | <!DOCTYPE html> | ||
+ | <html> | ||
+ | <head> | ||
+ | <meta charset="UTF-8"> | ||
+ | <title></title> | ||
+ | </head> | ||
+ | <body> | ||
+ | <div id = "app"> | ||
+ | <input id="male" type="radio" v-model="gender" | ||
+ | :value="genderVal[0]"> | ||
+ | <label for="male">男</label> | ||
+ | <br> | ||
+ | <input id="female" type="radio" v-model="gender" | ||
+ | :value="genderVal[1]" > | ||
+ | <label for="female">女</label> | ||
+ | <br> | ||
+ | <span>性别:{{ gender }}</span> | ||
+ | </div> | ||
+ | |||
+ | <script src="vue.js"></script> | ||
+ | <script> | ||
+ | var vm = new Vue({ | ||
+ | el: '#app', | ||
+ | data: { | ||
+ | gender: '', | ||
+ | genderVal: ['帅哥', '美女'] | ||
+ | } | ||
+ | }); | ||
+ | </script> | ||
+ | </body> | ||
+ | </html></nowiki> | ||
+ | |||
+ | ==选择框的选项== | ||
+ | 选择框选择内容后其值是选项的值(<option>元素的value属性的值),选项的value属性也可以使用v-bind指令绑定到一个数据属性上。 | ||
+ | |||
+ | <nowiki> | ||
+ | <!DOCTYPE html> | ||
+ | <html> | ||
+ | <head> | ||
+ | <meta charset="UTF-8"> | ||
+ | <title></title> | ||
+ | </head> | ||
+ | <body> | ||
+ | <div id = "app"> | ||
+ | <select v-model="searches" multiple> | ||
+ | <option v-for="option in options" v-bind:value="option.value"> | ||
+ | {{ option.text }} | ||
+ | </option> | ||
+ | </select> | ||
+ | <p>您选择的搜索引擎是:{{ searches }}</p> | ||
+ | </div> | ||
+ | |||
+ | <script src="vue.js"></script> | ||
+ | <script> | ||
+ | var vm = new Vue({ | ||
+ | el: '#app', | ||
+ | data: { | ||
+ | searches: [], | ||
+ | options: [ | ||
+ | {text: '百度', value: 'baidu.com'}, | ||
+ | {text: '谷歌', value: 'google.com'}, | ||
+ | {text: '必应', value: 'bing.com'} | ||
+ | ] | ||
+ | } | ||
+ | }); | ||
+ | </script> | ||
+ | </body> | ||
+ | </html></nowiki> |
2021年2月10日 (三) 01:41的最新版本
应用背景
对于单选按钮,复选框及选择框的选项,v-model 绑定的值通常是静态字符串 (对于复选框也可以是布尔值):
<!-- 当选中时,`picked` 为字符串 "a" --> <input type="radio" v-model="picked" value="a"> <!-- `toggle` 为 true 或 false --> <input type="checkbox" v-model="toggle"> <!-- 当选中第一个选项时,`selected` 为字符串 "abc" --> <select v-model="selected"> <option value="abc">ABC</option> </select>
但是有时我们可能想把值绑定到 Vue 实例的一个动态 property 上,这时可以用 v-bind 实现,并且这个 property 的值可以不是字符串。
复选框
在使用单个复选框时,在<input>元素上可以使用两个特殊的属性true-value和false-value来指定选中状态下和未选中状态下v-model绑定的值是什么
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id = "app"> <!-- <input id="agreement" type="checkbox" v-model="isAgree" true-value="yes" false-value="no"> --> <input id="agreement" type="checkbox" v-model="isAgree" :true-value="trueVal" :false-value="falseVal"> <label for="agreement">{{ isAgree }}</label> </div> <script src="vue.js"></script> <script> var vm = new Vue({ el: '#app', data: { isAgree: false, trueVal: '真', falseVal: '假' } }); </script> </body> </html>
数据属性isAgree的值初始为false ,当选中复选框时,其值为true-value属性的值--真,之后再取消复选框,其值为false-value属性的值-假。
单选按钮
单选按钮被选中时,v-model绑定的数据属性的值默认被设置为该单选按钮的value值,可以使用v-bind将<input>元素的value属性再绑定到另一个数据属性上,这样选中后的值就是这个value属性绑定的数据属性的值。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id = "app"> <input id="male" type="radio" v-model="gender" :value="genderVal[0]"> <label for="male">男</label> <br> <input id="female" type="radio" v-model="gender" :value="genderVal[1]" > <label for="female">女</label> <br> <span>性别:{{ gender }}</span> </div> <script src="vue.js"></script> <script> var vm = new Vue({ el: '#app', data: { gender: '', genderVal: ['帅哥', '美女'] } }); </script> </body> </html>
选择框的选项
选择框选择内容后其值是选项的值(<option>元素的value属性的值),选项的value属性也可以使用v-bind指令绑定到一个数据属性上。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id = "app"> <select v-model="searches" multiple> <option v-for="option in options" v-bind:value="option.value"> {{ option.text }} </option> </select> <p>您选择的搜索引擎是:{{ searches }}</p> </div> <script src="vue.js"></script> <script> var vm = new Vue({ el: '#app', data: { searches: [], options: [ {text: '百度', value: 'baidu.com'}, {text: '谷歌', value: 'google.com'}, {text: '必应', value: 'bing.com'} ] } }); </script> </body> </html>