无法在Vue js指令中将html元素附加到父元素

时间:2017-06-18 11:25:37

标签: vue.js vuex

我在vue js

中有一个全局指令
Vue.directive('customDirective',{
    bind(el,binding,vnode){
        // need to get the parent
        // append a div after the input element
    }
})

我有以下HTML代码。

<div class="parentDiv">
<input type="text" name="firstName" v-customDirective="Some text"/>
</div>

<div class="parentDiv"> is loading dynamically via jquery。我需要获取输入标记的父级,并需要在输入标记后附加一些html。我已尝试使用parent(),但它显示为父级不是函数。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

如果要访问父元素,则应该使用inserted挂钩而不是bind

您可以通过el.parentElement获取父元素。

答案 1 :(得分:0)

您可能应该使用vnode和Vue nextTick。

Map<KafkaTopicPartition, Long> specificStartOffsets = new HashMap<>();
specificStartOffsets.put(new KafkaTopicPartition("myTopic", 0), 23L);
specificStartOffsets.put(new KafkaTopicPartition("myTopic", 1), 31L);
specificStartOffsets.put(new KafkaTopicPartition("myTopic", 2), 43L);

myConsumer.setStartFromSpecificOffsets(specificStartOffsets);

如果你想使用jQuery函数parent(),你必须通过jQuery获取元素。

import Vue from 'vue';

Vue.directive('customDirective',{
    bind(el,binding,vnode){
        Vue.bextTick(() => {
            let parent = vnode.elm.parentElement;
        });
    }
})

我不确定,第二个代码是否有效,但它会是这样的。