Написание функции angularToHTML - PullRequest
0 голосов
/ 25 апреля 2019

Я недавно написал эту функцию, которая преобразует 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...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...