chewarer
@chewarer

Как из директивы вызвать метод инстанса?

Как из директивы вызвать метод инстанса, не обращаясь к нему по имени (app_ctrl.updateVal())? Через this нельзя, потому что this указывает на input.
Я хочу привязать эту директиву к разным инстансам, не хочется дублировать.
Вот урезанный код:
Vue.directive('picker', {
        inserted: function (el, binding) {
            $.mask.definitions['H']='[0-9]';
            $(el).mask("HH:HH", {
                completed: function(){
                    // Метод который хочу вызвать
                    this.updateVal(binding.value['i'], binding.value['day'], this.val())
                }
            });
        }
    });

app_ctrl = new Vue({
        delimiters: ['{*', '*}'],
        el: '#controlapp',
        data: {
            data: [],
            obj_name: '',
        },

        methods:{
             // Метод который хочу вызвать
             updateVal : function (i, day, time) {
                console.log(i, day, time);
                this.data[i][day] = time;
            },
        }
    });


<table>
<tbody v-cloak>
<tr v-for="(row, i) in data" class="row body">
<td v-bind:disabled="!row.mon_from">
    <input type="text" v-model="row.mon_from" v-picker="{i: i, day: 'mon_from'}">
</td>
</tr>
</tbody>
</table>
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы