【发布时间】:2018-06-30 03:10:03
【问题描述】:
我一直在尝试让一个动态组件工作,它允许我根据提供的模板单独呈现列表项。
然而,Vue 似乎在父范围内插入模板,而不是在 dynamicComponent 范围内。
简单示例:
<dynamicComponent
v-for="item in listItems"
v-bind:input="item"
v-bind:is="{template:'<p>{{input.name}}</p>'}"
</dynamicComponent>
这会失败,因为 input 在父范围内是未知的。
有没有办法动态传递模板并在组件范围内引用变量/属性?
编辑:解决方案
原来我有点误解了v-bind:is 的工作原理。
它允许您内联绑定/创建匿名组件,而不是添加/操作引用的组件。
正确的解决方案似乎是:
<component
v-for="item in listItems"
v-bind:input="item"
v-bind:is="{template:'<p>{{input.name}}</p>', props:['input']}">
</component>
【问题讨论】: