VueJs 向模态组件发送数据

Posted

技术标签:

【中文标题】VueJs 向模态组件发送数据【英文标题】:VueJs Send data to modal component 【发布时间】:2018-11-16 03:58:27 【问题描述】:

我想将我的数据(第一个组件)发送到模态(另一个组件)。两个组件都位于同一个地方。我需要将数据显示到我的编辑模式的第一个组件数据表单。

这是我的代码:

form.vue:

  <template>
     <tbody v-for="user,index in users">
        <button type="button" class="btn btn-xs" data-toggle="modal" 
         data-target="#editModal"> -> edit button, show modal
     (...)
     <edit-user></edit-user>
    (...)
  </template>

<script>
      components: 
            add: addUser,
            edit: editUser
        ,
</script>

edit.vue:

  <template>
    <div id="editModal" class="modal fade" role="dialog">

     <div class="form-group">
        <input type="text" class="form-control" name="nameInput" 
value=" I WANT HERE DATA" v-model="list.name">
                            </div>
(...)
    </template>

我该怎么做?

【问题讨论】:

对我的回答有任何反馈吗?对你有帮助吗? 【参考方案1】:

解决方案是让父组件存储两个组件共享的数据。 在第一个组件上,您可以使用$emit 更改父组件的数据,然后使用props 将相同的数据传递给模态组件。

Vue.component('app-input', 
  props: ['message'],
  template: `<input type="text" placeholder="Try me" 
  v-bind:value="message"
  v-on:input="$emit('input', $event.target.value)"/>`
);

Vue.component('app-header', 
  props: ['title'],
  template: `<h4>title</h4>`
);

var app = new Vue(
  el: '#app',
  data: 
    message: ''
  
);
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
  <app-header v-bind:title="message"></app-header>
  <app-input v-model="message"></app-input>
</div>

上面是一个简单的例子,说明了如何做到这一点。&lt;app-input&gt; 组件更改了父 message data,并将相同的属性作为标题传递给 &lt;app-header&gt; 组件。

【讨论】:

以上是关于VueJs 向模态组件发送数据的主要内容,如果未能解决你的问题,请参考以下文章

vuejs子组件向父组件传递数据

VueJs3 将数据从一个组件发送到另一个组件

在 vuejs 中用户单击时更新发送到子组件的值

vuejs子组件怎么获取父组件的值

如何在 Bootstrap Vue 中向父级发送模态数据?

如何通过从vuejs组件获取数据在Laravel控制器中创建多个行