2016-06-13 3 views
0

Я использую VueJS с gulp и браунирую в приложении Laravel.Инициализировать компонент из содержимого html, полученного динамически

Мои компоненты vue работают нормально с обычными файлами html или blade-файлов.

Проблема возникает только при попытке загрузить html после загрузки страницы. (после загрузки скрипта vue)

Пример: Предположим, что сигнатура компонента составляет <todo-list />. Я пытаюсь загрузить его в модальном режиме. Html, содержащий подпись, динамически загружается из вызова jQuery Ajax. $.ajax().

Somethings я знаю о:

  1. Причина проблемы проста: так как страница была загружена, сценарий вю прикреплен к корпусу загружается тоже, так что не может признать свою подпись компоненты загружается из динамического содержимого html.

  2. Я могу использовать модальное событие onShow. Проблема в том, что я не знаю как вызывать VueJS, чтобы проверить все html, снова разобрав те теги компонентов.

+0

Вы не можете динамически загружать компоненты Vue после компиляции. Вместо этого вы должны v-if или v-show и привязать их к объекту данных. Вы можете использовать часы или вычисленное свойство для асинхронных данных, которые не могут быть загружены к моменту составления страницы – vbranden

ответ

1

Мне не удалось решить эту проблему с помощью директив v-if или v-show.

Чтобы решить, мне нужно, чтобы снова «собрать» в Vue App, позвонив:

var node = $('#ROOT_NODE_OF_COMPONENT').get(0); 
this.$compile(node); 

Выполнить этот код после того, как содержимое удаленного HTML загружена в DOM.

PS: VueJS v1.0

Смежные вопросы