将对象数组传递给 vue.js 中的组件
passing array of objects to a component in vue.js
我在将对象数组传递给 Vue.js 2.2 中的组件时遇到问题。
这是我的组件
<vue-grid :fields = "[
{name: 'Person Name', isSortable: true},
{name: 'Country', isSortable: true}]"
></vue-grid>
它不起作用,因为它在浏览器中呈现花括号。
我试过在对象中没有引号 "
并且在 fields
属性 前面没有冒号 :
。 None 这些作品中的任一个。
但是,如果我只传递一个有效的简单字符串。我不知道为什么对象不起作用。
我找到了一个类似的 ,但给出了 php 的答案。我只需要 JavaScript 的解决方案。我想在组件中硬编码对象数组。
你传递的是正确的。你一定有其他事情在幕后发生。确保您的模板具有包装元素。 See this fiddle
<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>
我在将对象数组传递给 Vue.js 2.2 中的组件时遇到问题。
这是我的组件
<vue-grid :fields = "[
{name: 'Person Name', isSortable: true},
{name: 'Country', isSortable: true}]"
></vue-grid>
它不起作用,因为它在浏览器中呈现花括号。
我试过在对象中没有引号 "
并且在 fields
属性 前面没有冒号 :
。 None 这些作品中的任一个。
但是,如果我只传递一个有效的简单字符串。我不知道为什么对象不起作用。
我找到了一个类似的
你传递的是正确的。你一定有其他事情在幕后发生。确保您的模板具有包装元素。 See this fiddle
<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>