@choupa
Архитектор (обычный, который строит)

Как внутри v-on = «...» получить глобальный контекст?

Вот примерно, что мне надо:

@click = "myVueMeth1(); myVueMeth2(); document.forms[0].submit()"


Но это не работает. Понимаю, что можно так:

onclick = "vm.myVueMeth1(); vm.myVueMeth2(); document.forms[0].submit()"

где vm — объект Vue

Но хочется чистоты стиля.
  • Вопрос задан
  • 127 просмотров
Решения вопроса 2
0xD34F
@0xD34F
Сделайте отдельный метод:
@click="onClick"

methods: {
  onClick() {
    this.myVueMeth1();
    this.myVueMeth2();
    document.forms[0].submit();
  }
}


UPD. Конечно, вы можете определить computed свойство для document, типа так:
computed: {
  document() {
    return document
  }
}
Тогда ваш первый пример заработает. Но это какое-то варварство, на мой взгляд.
Ответ написан
@kulakoff
Vue.js developing
Проще и правильнее все перенести в метод, но если сильно хочется, то нужно поменять контекст вызова:
@click = "function(){ myVueMeth1(); myVueMeth2(); document.forms[0].submit() }.bind(this)"
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@evilray
Если вам нужен глобальный контекст в v-on, то вы не правильно готовите vue.

Если расскажите о задаче подробнее, можно будет подробнее ответить как правильно.
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы