Javascript 使用$index为v-for的自定义指令

Javascript 使用$index为v-for的自定义指令,javascript,vue.js,Javascript,Vue.js,我在v-for中有一个自定义指令。我需要将$index的值传递到custom指令中,以便能够将datepicker值保存在数组中(每个产品有一个日期)$不过,索引在数组中的值始终为undefined <tr v-for="result in results"> <td> <input v-model="shoppingCart[$index].productStartDate" type="text" v-datepicker

我在v-for中有一个自定义指令。我需要将$index的值传递到custom指令中,以便能够将datepicker值保存在数组中(每个产品有一个日期)$不过,索引在数组中的值始终为undefined

   <tr v-for="result in results">
      <td>
           <input v-model="shoppingCart[$index].productStartDate" type="text" v-datepicker='shoppingCart[$index].productStartDate'>
      </td>

我尝试使用this.arg将引用传递到$index,但找不到传递闭包以获取值的方法,但两者都不起作用,我一定是做错了什么?

对于Vue.js 2.x,他们建议使用数据集传递值 因此,您可以在HTML元素中添加:data index=“index”,并在指令中获取它,如下所示:

Vue.directive('yourDirective'{
绑定:函数(el、绑定、vnode){
log('元素索引',el.dataset.index);
}
}


只是一个问题,为什么要在指令中使用引号和箭头?我第一次看到时,我认为指令的使用就像属性一样notation@YerkoPalma-谢谢你指出这一点,这是我将Laravel blade语法翻译成html时的一个错误。它现在已经修复,面临同样的问题……有人需要帮助吗?
 Vue.directive('datepicker', {

        bind: function () {
            var vm = this.vm;
            var key = this.expression;
            $(this.el).datepicker({
                onSelect: function (date) {
                    vm.$set(key, date);
                }
            });
        },
        update: function (val) {
            $(this.el).datepicker('setDate', val);
        }

    });