0
私はVueを使ってACEエディタからフロントエンドにデータをバインドしたいと思います。つまり、エディタで何かを入力すると、他の場所でコンテンツを同期させることができます。VUEを使用してDOM内のデータを同期する方法は?
エディタのロジックは単純で、コンテンツを取得するにはeditor.getValue()
、入力を受け取るにはeditor.on('input', function(){......})
です。私はこれを持っている
ATM:
<div id="content">
<div id="editor" v-ace-editor="{snippet: snippet , type: type}" style="height:400px; width:100%"></div>
<div>{{snippet}}</div>
</div>
<script>
Vue.directive('ace-editor', {
bind: function (el, binding, vnode) {
var editor = ace.edit(el);
editor.setValue(binding.value.snippet);
console.log(binding);
editor.on('input', function(){
binding.value.snippet = editor.getValue();
})
}
})
var vm = new Vue({
el: '#content',
data: {
snippet : 'select * from ...',
type : 'hive'
}
})
</script>
理想的には、私は、コードを入力する際、実際に{{snippet}}
は変わりませんが、リスナーの内側に私はsnippet
の値を更新。
誰もが私に理由を教えてもらえますか?