【问题标题】:VueJs Send data to modal componentVueJs 向模态组件发送数据
【发布时间】: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>

我该怎么做?

【问题讨论】:

  • 对我的回答有任何反馈吗?对你有帮助吗?

标签: javascript node.js vue.js vue-component


【解决方案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; 组件。

【讨论】:

    猜你喜欢
    • 2017-05-23
    • 1970-01-01
    • 1970-01-01
    • 2022-08-02
    • 2022-10-25
    • 2017-03-08
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多