Vue渲染元素与指令

时间:2017-11-07 13:48:38

标签: vue.js vuejs2

我正在尝试使用渲染函数

渲染此指令
<h2 v-tooltip.top="{ content: 'You have new messages.', classes: 'tooltip-info', offset: 15 }">
            some text
</h2>

在函数

中使用此代码
return createElement('h2', {
                    directives: [
                        {
                            name: 'v-tooltip',
                            value: {
                                content: field.tooltip.content ? field.tooltip.content : field.tooltip,
                                classes: field.tooltip.class ? field.tooltip.class : 'tooltip-info',
                                offset: 15,
                            },
                            arg: 'top',
                        },
                    ],
                }, [field.title]);

但我收到此错误: [Vue warn]: Failed to resolve directive: v-tooltip

我错过了什么,字段是可能有内容或类支柱的对象。 所以我设置它们,如果它有或者在else中默认设置。

v-tooltip是这个指令https://github.com/Akryum/v-tooltip

1 个答案:

答案 0 :(得分:3)

正如我在评论中提到的,v-tooltip应更改为tooltip

在vuejs中定义指令时,名称不需要v-前缀:example:

Vue.directive('focus', {
  inserted: function (el) {
    el.focus()
  }
})

然后可以将上述指令称为:

<input v-focus>

<子> source