在 v-for 循环中使用 vue 组件
use vue component in v-for loop
你好,我需要帮助生成多个 vue 组件(vue-popperjs - 用于工具提示)。
在下面的代码中,组件出现在页面上但我无法与它们交互(按钮不会切换工具提示,工具提示默认显示)并且我在控制台中出现错误
"vue.common.js?e881:560 [Vue warn]: 挂载钩子出错:
(发现于)
和
TypeError: Cannot read property '0' of undefined
at VueComponent.mounted (eval at (app.js:909), :117:64)
at callHook (eval at (app.js:891), :2275:21)
at Object.insert (eval at (app.js:891), :2954:7)
at invokeInsertHook (eval at (app.js:891), :4960:28)
at Vue.patch [as __patch__] (eval at (app.js:891), :5124:5)
at Vue.Vue._update (eval at (app.js:891), :2042:19)
at Vue.updateComponent (eval at (app.js:891), :2158:10)
at Watcher.get (eval at (app.js:891), :2469:25)
at Watcher.run (eval at (app.js:891), :2539:22)
at flushSchedulerQueue (eval at (app.js:891), :2331:13)
代码:
<span class="input" v-for="additionalCategory in additionalCategories">
<p>@{{ additionalCategory.name }}
<popper trigger="click" :options="{placement: 'right'}" :content="additionalCategory.tooltip_text">
<div class="additionalCategory.tooltip_text">
@{{ additionalCategory.tooltip_text }}
</div>
<button slot="reference">
Reference Element
</button>
</popper>
<span v-if="additionalCategory.tooltip_active" class="tooltip-div" @click="showTooltip(additionalCategory.tooltip_text, additionalCategory.id, $event)">
<span class="tooltip_toggle" v-bind:class="additionalCategory.id"></span>
</span>
</p>
<div class="input-action">
<div class="counter">
<input type="text" :value="additionalCategory.quantity" :id="additionalCategory.id">
<div class="ico"><img :src="'/images/icons/'+additionalCategory.icon+'.png'"
:id="additionalCategory.name"></div>
<div class="plus-minus">
<div class="minus" v-on:click="clickMinus($event, additionalCategory.id)"></div>
<div class="plus" v-on:click="clickPlus($event, additionalCategory.id)"></div>
</div>
</div>
</div>
</span>
我在app.js注册了popper:
Vue.component('popper', require('vue-popperjs'));
和相同的组件工作但不在 for 循环中。
请帮助我,我不知道该怎么做。
这里的问题归结为 popper
组件被嵌入段落元素 (<p></p>
)。把它从那个元素中取出来解决了这个问题。
你好,我需要帮助生成多个 vue 组件(vue-popperjs - 用于工具提示)。
在下面的代码中,组件出现在页面上但我无法与它们交互(按钮不会切换工具提示,工具提示默认显示)并且我在控制台中出现错误 "vue.common.js?e881:560 [Vue warn]: 挂载钩子出错: (发现于)
和
TypeError: Cannot read property '0' of undefined at VueComponent.mounted (eval at (app.js:909), :117:64) at callHook (eval at (app.js:891), :2275:21) at Object.insert (eval at (app.js:891), :2954:7) at invokeInsertHook (eval at (app.js:891), :4960:28) at Vue.patch [as __patch__] (eval at (app.js:891), :5124:5) at Vue.Vue._update (eval at (app.js:891), :2042:19) at Vue.updateComponent (eval at (app.js:891), :2158:10) at Watcher.get (eval at (app.js:891), :2469:25) at Watcher.run (eval at (app.js:891), :2539:22) at flushSchedulerQueue (eval at (app.js:891), :2331:13)
代码:
<span class="input" v-for="additionalCategory in additionalCategories">
<p>@{{ additionalCategory.name }}
<popper trigger="click" :options="{placement: 'right'}" :content="additionalCategory.tooltip_text">
<div class="additionalCategory.tooltip_text">
@{{ additionalCategory.tooltip_text }}
</div>
<button slot="reference">
Reference Element
</button>
</popper>
<span v-if="additionalCategory.tooltip_active" class="tooltip-div" @click="showTooltip(additionalCategory.tooltip_text, additionalCategory.id, $event)">
<span class="tooltip_toggle" v-bind:class="additionalCategory.id"></span>
</span>
</p>
<div class="input-action">
<div class="counter">
<input type="text" :value="additionalCategory.quantity" :id="additionalCategory.id">
<div class="ico"><img :src="'/images/icons/'+additionalCategory.icon+'.png'"
:id="additionalCategory.name"></div>
<div class="plus-minus">
<div class="minus" v-on:click="clickMinus($event, additionalCategory.id)"></div>
<div class="plus" v-on:click="clickPlus($event, additionalCategory.id)"></div>
</div>
</div>
</div>
</span>
我在app.js注册了popper:
Vue.component('popper', require('vue-popperjs'));
和相同的组件工作但不在 for 循环中。 请帮助我,我不知道该怎么做。
这里的问题归结为 popper
组件被嵌入段落元素 (<p></p>
)。把它从那个元素中取出来解决了这个问题。