javascript - 如何向组件 vue.js 发送两个或多个参数? (vue.js 2)

标签 javascript vue.js laravel-5.3 vuejs2 vue-component

我的观点是这样的:

<table class="table table-inbox">
    ...
    <tbody>
    @foreach($messages as $message)
    <tr>
        ...
        <td>
            <div class="btn-group" role="group" aria-label="...">
                ...
                <a href="javascript:" @click="modalShow('modal-delete-message','{{ $message->id }}')" class="btn btn-danger">
                    <span class="fa fa-trash"></span> Delete
                </a>
            </div>
        </td>
    </tr>
    @endforeach
    </tbody>
</table>

@section('modal')
    <delete-message-modal id="modal-delete-message" :message-id="idModal"></delete-message-modal>
@endsection

我的组件 vue.js (DeleteMessageModal.vue) 是这样的:

<template>
    <div class="modal" tabindex="-1" role="dialog">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                ...
            </div>
        </div>
    </div>
</template>

<script>
    export default{
        name: 'DeleteMessageModal',
        props:['messageId'],
        methods: {
            deleteMessage(event) {
                var message_id = this.messageId
                console.log(message_id)
                ...
            }
        } 
    }
</script>

当我点击删除按钮时,它会将消息id的值发送到DeleteMessageModal组件

我这样做:console.log(message_id),它成功显示消息id的值

但是在这里,我还需要另一个参数

View 上的messages数组,除了id key之外,还有seller_id key和buyer_id key

我想将buyer_id key和seller_id key也发送到vue组件

我该怎么做?

更新

我的解决方案:

我的观点是这样的:

<table class="table table-inbox">
    ...
    <tbody>
    @foreach($messages as $message)
    <tr>
        ...
        <td>
            <div class="btn-group" role="group" aria-label="...">
                ...
                <a href="javascript:" @click="modalShow('modal-delete-message','{{ $message->id }}#separator#{{$message->seller_id}}#separator#{{$message->buyer_id}}')" class="btn btn-danger">
                    <span class="fa fa-trash"></span> Delete
                </a>
            </div>
        </td>
    </tr>
    @endforeach
    </tbody>
</table>

@section('modal')
    <delete-message-modal id="modal-delete-message" :message-data="idModal"></delete-message-modal>
@endsection

我的组件 vue.js (DeleteMessageModal.vue) 是这样的:

<template>
    <div class="modal" tabindex="-1" role="dialog">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                ...
            </div>
        </div>
    </div>
</template>

<script>
    export default{
        name: 'DeleteMessageModal',
        props:['messageData'],
        methods: {
            deleteMessage(event) {
                var messageData = this.messageData           
                var arr = messageData.split('#separator#')
                message_id= arr[0]
                seller_id= arr[1]
                buyer_id= arr[2]
            }
        } 
    }
</script>

最佳答案

正如评论中添加的,您可以添加 Prop :

<script>
    export default{
        name: 'DeleteMessageModal',
        props:['messageId', 'buyerId', `sellerId `],
        methods: {
            deleteMessage(event) {
                var message_id = this.messageId
                console.log(message_id)
                ...
            }
        } 
    }
</script>

并将其传递到父模板中:

<delete-message-modal id="modal-delete-message" :message-id="idModal" buyer-id="123" seller-id="32"></delete-message-modal>

关于javascript - 如何向组件 vue.js 发送两个或多个参数? (vue.js 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42756481/

相关文章:

javascript - vue.js : error unknown action type?

javascript - js 中的 Highchart 在 Vue.js 中不起作用

php - 如何在 Laravel 中更改重置密码电子邮件主题?

java - 来自 Javascript 的 SOAP Web 服务调用

JavaScript 循环遍历多维 JSON 数组

javascript - 在文档上使用 jquery 添加点击事件跟踪器时,链接上的点击事件不起作用

javascript - 如何检查所有选择选项值不为空?

javascript - 未在数据对象中定义时,VueJS 变量值不会更新

php - 如何在 Laravel 中将 stdClass 的对象转换为数组

laravel - 如何在 Laravel 中使用 Passport Token 获取用户 ID