如何更新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
循环中使用该指令时存在错误。