@puesmania

VUE: как верно обрабатывать события при работе с AXIOS и PHP?

Добрый вечер.
Коллеги, выручайте! Всю голову уже сломал! Задача банальная: передать набор id (собранных посредствами Vue) обычному php-скрипту, который сделает выборку из базы mysql и вернёт нужные наименования полей.
Для упрощения понимания максимально упрощу пример:

Имеем вот такой запрос:
loadResult: function() {
				axios({
					    method: 'post',
					    url: 'ses.php',
					    data: {
					        genset: JSON.stringify(this.genset)
					    }
					 })
					.then(response=> {
						this.resultBuyGenset = response.data;
					 })
			}


PHP-скрипт получает запрос и возвращает строку:
echo "<div style=\"color: blue; cursor: pointer;\" v-on:click=\"testClick(777)\">Подгрузили!</div>";


Фраза "Подгрузили" в js-код приходит. НО! Vue-скрипт почему-то не воспринимает директиву v-on, а тупо выводит его в коде как есть и не вешает на него событие. Помогите победить проблему, плиз. (((

PS: 1) естественно в app всё обёрнуто верно
2) функция testClick создана
3) если без прогрузки из php-скрипта вставлять строчку - работает как часы.
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 2
@bagzon
Backend PHP, NodeJs, JS
Вот сниппет, по сути компилирует хтмл с vue который пришел с сервера.

Просто так после инициализации vue работать не будет.

/**
 * Компонент который может скомпилить хтмл строку с кастом компонентами внутри
 * <dynamic-html template="<div title='sdff' @click='alert(123)'/>" />
 */
export default {
  functional: true,
  props: {
    template: String,
    data: { type: Object, default: () => ({}) }
  },
  render(h, context) {
    const template = context.props.template;
    const dynComponent = {
      template,
      data() {
        return context.props.data;
      }
    };
    const component = template
      ? dynComponent
      : {
          template: `<div>Loading...</div>`
        };
    return h(component);
  }
};
Ответ написан
Комментировать
Используйте v-model="resultBuyGenset", т.к. директива v-on не умеет дожидаться ответа промиса.
Ответ написан
Ваш ответ на вопрос

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

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