Я использую компонент плагина Vue Timeago и хочу показать время назад в содержимом плагина карты. Сверхупрощенный пример, иллюстрирующий использование, будет выглядеть примерно так:
let popup = L.responsivePopup().setContent(`
<h1>Hello world</h1>
<p>A thing happened <Timeago datetime="${datetime}"></Timeago></p>
`);
L.marker([lat, lon]).bindPopup(popup).addTo(this.map);
Согласно этому ответу и документацию Vue, я должен быть в состоянии скомпилировать это, используя Vue.compile()
, но я не понимаю концепцию.
Во-первых, нет объяснения, что такое «полная сборка». Как я могу сказать, является ли то, что у меня есть, «полной сборкой»? Поиск «полной сборки vuejs» не возвращает ничего, что буквально упоминается как эта фраза, даже если они используют ее в документации. Все, что я знаю, это то, что когда я пытаюсь вызвать Vue.compile()
с импортированным import Vue from 'vue'
, он жалуется, говоря:
TypeError: vue__WEBPACK_IMPORTED_MODULE
Vue.compile()
_.default.compile не является функцией
Так что я не знаю, куда идти оттуда.
И затем, во-вторых (при условии, что первое будет отсортировано), мне придется заставить мой HTML содержать пустой div с определенным id
, дождаться его рендеринга, а затем вызвать на нем Vue.compile()
, так как там работает пример кода с .mount()
в идентификаторе элемента? Потому что это кажется немного «неправильным», имея, казалось бы, лишний шаг. Или это единственный способ заставить этот сценарий работать?
Если есть более простое альтернативное ожидание выполнения этой работы, например, заставить компонент Timeago
просто возвращать только отображаемую строку, например 2 hours ago
, которую я могу включить в свой строковый литерал, это также сработает для меня. В любом случае это хорошо.