中编辑器未在VueJS指令

时间:2016-09-09 06:30:26

标签: vue.js medium-editor

我正在尝试将媒体编辑器与VueJs指令集成。

它运行良好但该字段的初始value道具最初并未填充媒体编辑器。一旦我在媒体编辑器中更新文本,就会建立链接,并在textarea中填充html。

指令:

Vue.directive('wysiwyg', {
  bind () {
    let editor = new MediumEditor(this.el)
  }
})

元素:

<textarea v-wysiwyg name="{{ name }}" class="wysiwyg">{{ value }}</textarea>

似乎绑定函数在textarea

中填充值之前运行

任何人都有将这两者结合起来的经验吗?

1 个答案:

答案 0 :(得分:3)

是的,容器上的绑定将在绑定其内容之前发生。您可以使用nextTick等待它。

Vue.directive('wysiwyg', {
  bind() {
    Vue.nextTick(() => new MediumEditor(this.el));
  }
});

new Vue({
  el: 'body',
  data: {
    value: 'Initial text'
  }
});
<script src="//cdnjs.cloudflare.com/ajax/libs/vue/1.0.26/vue.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/medium-editor/5.22.0/js/medium-editor.min.js"></script>
<link href="//cdnjs.cloudflare.com/ajax/libs/medium-editor/5.22.0/css/medium-editor.min.css" rel="stylesheet" />
<textarea v-wysiwyg name="{{ name }}" class="wysiwyg">{{ value }}</textarea>