0

メディア エディターを VueJs ディレクティブと統合しようとしています。

うまく機能していますがvalue、フィールドの初期プロップが最初にメディア エディターに入力されていません。中程度のエディターでテキストを更新するとすぐに、リンクが確立され、html がテキストエリアに取り込まれます。

指令:

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

エレメント:

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

に値が入力される前に bind 関数が実行されているようtextareaです。

これら2つを統合した経験のある人はいますか?

4

1 に答える 1

4

はい、コンテナのバインドは、そのコンテンツのバインドの前に発生します。を使って待つことができます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>

于 2016-09-09T12:59:25.390 に答える