如果我在vue中有一个元件:
<template>
<component v-bind="dynamicAttrs"></component>
</template>
我想给它分配一些动态属性,其中v-demo是一个自定义指令:
data() {
return {
dynamicAttrs: {
'class': 'foo'
'v-demo': true
}
}
}
虽然我可以看到dom中的attbitues,但是在这个场景中,custom指令没有被触发。
有没有办法通过vue中的对象动态分配指令?
3条答案
按热度按时间hgtggwj01#
v-bind
是一个指令。不能将一个指令与另一个指令一起应用uqdfh47h2#
迈克尔说的是真的,但也许你可以绕过它一点:
然后,您可以创建一个自定义组件,该组件基于您放入的数据进行呈现。https://v2.vuejs.org/v2/guide/components.html#Dynamic-Components
备选案文2:
创建一个自定义指令,并将动态值放入参数中:
https://v2.vuejs.org/v2/guide/custom-directive.html#Dynamic-Directive-Arguments
epfja78i3#
如果你真的想这样做,你可以这样做(就在最近,我也做了同样的事情)。虽然有点恶心,但它的工作。如果你有更多的指导,它变得丑陋😉