Я недавно написал эту функцию, которая преобразует HTML с директивами Vue.js в обычный HTML:
function vueToHTML(vueHTML, data, onRender) {
function onUpdated() {
this.$nextTick(function () {
onRender(this.$el.innerHTML);
});
}
return new Vue({
template: '<div>' + vueHTML + '</div>',
el: document.createElement('div'),
data: Object(data),
mounted: onUpdated,
updated: onUpdated
});
}
Таким образом, я могу вызвать эту функцию, выполнив что-то вроде этого:
vueToHTML(
'<div v-for="a in [1,2,3]">{{a}}</div>',
null,
function(output) {
console.log('Output:', output);
}
);
И будет выведено следующее:
Output: <div>1</div><div>2</div><div>3</div>
Я также могу указать переменные данных (область действия AKA):
vueToHTML(
'<div v-for="a in arr">{{a}}</div>',
{ arr: [9,8,7,6,5,4,3,2,1] },
function (output) {
console.log('Output:', output);
}
);
Этоприведет к следующему:
Output: <div>9</div><div>8</div><div>7</div><div>6</div><div>5</div><div>4</div><div>3</div><div>2</div><div>1</div>
Я хочу создать аналогичную функцию, которая будет работать с Angular.Как я могу написать функцию со следующей подписью, которая будет работать с Angular и будет вызывать функцию обратного вызова с обработанным HTML?
function angularToHTML(html, data, callback) {
// Code goes here...
}