从Laravel视图将属性传递到Treeselect Vue组件

时间:2019-09-02 17:07:04

标签: javascript laravel vue.js

我试图将Vue-Treeselect链接:https://vue-treeselect.js.org/#node包装在它自己的vue组件中,这样我就可以简单地将<tree-select></tree-select>在需要的Laravel视图文件中。

我不知道的是,如何从Laravel视图传递一些实例特定的道具并使用组件模板中的属性值? 我想在Laravel视图中传递字段名称,例如:<tree-select name='property_ids'></tree-select>之后,vue组件模板可以使用传入的名称作为组件模板内部的name属性。

我正在使用https://vue-treeselect.js.org/中的入门代码 所以在我的Laravel视图表单中,我想要这个标签
<tree-select name='property_ids'></tree-select> 但是,如何在vue组件模板(下面的示例代码)中设置name属性值?

<template>
    <div>
        <treeselect v-model="value" :multiple="true" :options="options" name="passedInName"></treeselect>
    </div>
</template>

<script>
    // import the component
    import Treeselect from '@riophae/vue-treeselect'
    // import the styles
    import '@riophae/vue-treeselect/dist/vue-treeselect.css'

    export default {
        // register the component
        components: { Treeselect },
        data() {
            return {
                // define the default value
                value: [],
                // define options
                options: [  {
                    id: 'b',
                    label: 'b',
                }, {
                    id: 'z',
                    label: 'z',
                }, {
                    id: 'x',
                    label: 'x',
                } , {
                    id: 'v',
                    label: 'v',
                }],
            }
        },
    }
</script>

1 个答案:

答案 0 :(得分:1)

您必须在vue组件中声明传递的props才能在模板中使用

<template>
    <div>
        <!-- Pass the prop to the name attribute -->
        <treeselect v-model="value" :multiple="true" :options="options" :name="this.name">
        </treeselect>
    </div>
</template>

<script>
export default {
    props: ['name'], // <-- The declared prop
};
</script>