将对象数组传递给 vue.js 中的组件

Cir*_*ker 7 javascript vue-component vuejs2

我在将对象数组传递给 Vue.js 2.2 中的组件时遇到问题。

这是我的组件

<vue-grid :fields = "[
  {name: 'Person Name', isSortable: true}, 
  {name: 'Country', isSortable: true}]"
></vue-grid>
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为它在浏览器中呈现花括号。
我试过没有"在对象中引用并且:fields属性前没有冒号。这些都不起作用。但是,如果我只是传递一个有效的简单字符串。我不知道为什么对象不起作用。
我发现了一个类似的问题,但为 php 给出了答案。我只需要 JavaScript 的解决方案。我想对组件中的对象数组进行硬编码。

LUK*_*UKE 11

你正确地传递了它。你肯定在幕后发生了其他事情。确保您的模板具有包装元素。 看到这个小提琴

<div id="vue-app">
    <h2>
        Vue App
    </h2>
    <vue-grid :fields = "[
        {name: 'Person Name', isSortable: true}, 
        {name: 'Country', isSortable: true}]"
    ></vue-grid>
</div>
<script id="vue-grid-template" type="text/x-template">
    <div>
        <h3>Grid</h3>
        <div class="grid">
            Fields are:
            <ul>
                <li v-for="field in fields">
                    {{field.name}} - {{field.isSortable}}
                </li>
            </ul>
        </div>
    </div>
</script>

<script>
    Vue.component('vue-grid', {
        props: ['fields'],
        template: '#vue-grid-template'
    });

    new Vue({
        el: '#vue-app'
    });
</script>
Run Code Online (Sandbox Code Playgroud)