Вы можете использовать DOM-инжектированные HTML (или даже JavaScript строки) в качестве шаблона в SF C, но вам нужно будет включить Vue runtime compiler . Добавьте следующее к vue.config.js
:
module.exports = {
runtimeCompiler: true
}
Оберните содержимое вашего HTML вывода в x-template
:
<script type="text/x-template" id="cms-output">
...
</script>
В вашем SF C, не используйте теги <template></template>
. Вместо этого используйте опцию template
в вашем компоненте (для этого нужен компилятор времени выполнения):
<script>
export default {
template: '#cms-output'
}
</script>
Теперь вы можете использовать шаблон так же, как если бы он был определен в SF C , с директивами, синтаксисом усов и т. д. c.
РЕДАКТИРОВАТЬ (на основе отзывов)
В этом нет ничего уникального или сложного, если я правильно понимаю. Используйте обычный компонент / шаблон. Поскольку вывод не готов к использованию в качестве шаблона, тогда нет другого выбора, кроме как его проанализировать. Вы можете загрузить его из AJAX вместо встраивания, как в вашем вопросе, но в любом случае работает. Ваш компонент может выглядеть примерно так:
export default {
data() {
return {
data1: '',
data2: '',
dataN: ''
}
},
created() {
const contentElement = this.$cms.querySelector('.content');
const arrayOfData = parseTheContent(contentElement);
this.data1 = arrayOfData[1];
this.data2 = arrayOfData[2];
...
this.dataN = arrayOfData[100];
}
}
И вы будете использовать стандартный шаблон:
<template>
<div>
Some stuff {{ data1 }}. Some more stuff {{ data2 }}.<br />
{{ dataN }}
</div>
</template>