vue2.0数据双向绑定与表单bootstrap+vue组件
程序员文章站
2022-06-13 18:05:51
最近一直在用vue,觉得确实是好用。
一,拿数据的双向绑定来说吧
...
最近一直在用vue,觉得确实是好用。
一,拿数据的双向绑定来说吧
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>demo1</title> </head> <body> <div id="app"> {{ name }} <input type="text" v-model="name"> </div> </body> <script type="text/javascript" src="vue.js"></script> <script> new vue({ el: '#app', data: { name: '' }, watch: { name: function () { console.log(this.name); } } }); </script> </html>
vue中的所有数据都是在data中定义的,
el是指的挂载的元素,
watch 是我可以检测某个数据的变化。
v-model=“name”
就是与data中的name数据绑定,input框中的值变,那么data中的name也会变,我们可以通过差值操作,也就是{{name}}来看到变化,当然也可以像我一样打log。都是可以的。
当然这样也许还不是很实用,官网上也是这么介绍的,那么就说我在工作中是怎么用的吧
现在我的需求是要得到我表单里边的所有value ,我们也许可以
let service = $('.vendor').val(); let vendor = document.getelementsbyclassname('vendor')[0].value;
但是这样就完全没有get到vue双向绑定的好处了,那么我们该怎么做呢?
import service from './components/service.vue'; import $ from 'jquery'; export default { data () { return { resultdata: '', vendor: '', dtype: '', services: [service], items: [service], device: '', ddesc: '' } }, watch: { services () { console.log(this.services); }, items (val) { this.items = val; console.log(this.items); } }, components: { service }, methods: { addservice (component) { this.items.push(component); }, childserviceschange (val) { this.services = val; }, commit () { console.log('commit'); let device = { "type": 'urn:' + this.vendor + ':device:' + this.dtype + ':0000', "description": this.ddesc, "services": this.items };
看到没,我就是直接用的this.vendor, vendor是在data中定义好的,也进行了双向绑定v-model
<template> <div class="devdesc">
device description
<form class="form-horizontal" role="form" ref="form" id="form"> <div class="form-group"> <label for="vendor" class="col-sm-2 control-label text-left">vendor:</label> <div class="col-sm-2"> <input type="text" class="form-control vendor" id="vendor" v-model="vendor" control-label name="vendor"> </div> </div> <div class="form-group"> <label for="dtype" class="col-sm-2 control-label text-left">type:</label> <div class="col-sm-2"> <input type="text" class="form-control dtype" id="dtype" v-model="dtype" control-label name="dtype"> </div> </div> <div class="form-group"> <label for="ddesc" class="col-sm-2 control-label text-left">description:</label> <div class="col-sm-2"> <input type="text" class="form-control ddesc" id="ddesc" v-model="ddesc" control-label name="ddesc"> </div> </div> <!--<serlist class="serlistpad" :services="services" @services-change="serviceschange">--> <!--</serlist>--> <!--发现这个serlist不用抽出来组件--> <div class="serlist serlistpad"> <section class="serlist-section"> <span class="span-serlist">service list</span> <button type="button" class="btn btn-default btn-sm" @click="addservice(service)"> <span class="glyphicon glyphicon-plus"></span> </button> </section> <!--<service v-for="item in items" :items="items" :myservice="myservice" @child-services-change="childserviceschange"></service>--> <div v-for="service in services"> <service v-for="item in items" :items="items" :service="service" @child-services-change="childserviceschange"></service> </div> </div> </form> <button class="btn btn-info" @click="commit">commit</button> <button class="btn btn-success">save</button> </div> </template>
以上所述是小编给大家介绍的vue2.0数据双向绑定与表单bootstrap+vue组件,希望对大家有所帮助
上一篇: vue组件间通信解析
下一篇: 常用文件模板