Vuejs2 从vuejs 2.0指令设置模型值

Vuejs2 从vuejs 2.0指令设置模型值,vuejs2,Vuejs2,我正在使用Vue 2.0指令将Twitter Typeahead应用于输入。通过循环上下文,找到父对象并调用我的方法setAutoCompleteValue() Vue自定义指令的HTML设置 <input class="typeahead" type="text" placeholder="Search" name='typeahead' v-typeahead="getFieldValues(part.fieldName)" v-model=

我正在使用Vue 2.0指令将Twitter Typeahead应用于输入。通过循环上下文,找到父对象并调用我的方法
setAutoCompleteValue()

Vue自定义指令的HTML设置

    <input class="typeahead" type="text" placeholder="Search" name='typeahead'
        v-typeahead="getFieldValues(part.fieldName)"  
        v-model="part.value" v-bind:value="part.value"
        v-on:change="updateTest()" @input="onValidChange()" />
Vue.directive('typeahead', {
    inserted:  function(el_, binding,v) {
         // this feels like a hack, is there a better way?
         v.context._self.parent.setAutocmpleteValue('test');
     }
})

在指令$emit不可用于传递事件的情况下,是否有更好的方法调用
setAutoCompleteValue()

在Vue 2中,指令是用来传递事件的

请注意,在Vue 2.0中,代码重用和抽象的主要形式 is组件-但是在某些情况下,您可能只需要一些组件 对普通元素的低级DOM访问,这是自定义 指令仍然是有用的

它们不是用来设置数据值的,尝试这样做将依赖于您正在使用的黑客

不仅如此,这是一种非常脆弱的方法。问题中的指令依赖于当前上下文父级中的方法。如果输入元素的级别降低了两级或更高,该怎么办

您最好实现一个组件

但是,考虑到您已经在进行黑客攻击,$emit可以从
上下文中获得

v.context.$emit("some-event", someData)
context
是包含已附加指令的元素的Vue或Vue组件,因此您希望从该组件的父级侦听该指令