访问Vue 2自定义指令

时间:2017-07-29 00:26:31

标签: vuejs2

问题

如何更新Vue 2自定义指令中使用的模型数据?

设定:

<ul>
  <li v-for="item in items">
    <select my-directive="item">...</select>
  </li>
</ul>

所以,假设我有一个带有这样的钩子的指令:

Vue.directive('chosenjs', {
  inserted: function (el, binding, vnode) {
    // Here, I'm setting up a callback with the jQuery Chosen library, but this could be any callback.
    jQuery(el).chosen().change(function(event, change) {
      // CODE HERE...
    });
  }
});

CODE HERE...部分中,如果binding.value是指针(数组/对象),那么这是直截了当的。例如,对于一个数组,我会做例如binding.value.push(someValue),Vue的观察者会处理它。但如果价值是原始的,那么可以做些什么呢?

如果指令在v-for循环中,则可以使用vnode修改组件中的数据。当我展示here时,它的效果非常好。

但如果v-for中的 ,似乎没有办法。即使访问binding.expression,也无法获得v-for项目。

背景

我正在尝试使用Vue和ChosenJS jQuery库。我使用this answer获得了大部分路径,但在v-for循环中使用该指令时存在错误。

0 个答案:

没有答案