개발
[vue] summernote 컴포넌트로 사용하기
으아아아앜
2020. 2. 19. 05:00
<div>
<summernote
class="editor"
name="editor"
:model="input.content" //summernote에 작성한 텍스트가 vue에서 정의한 input.content에 저장
:height="'300'"
:lang="'ko-KR'"
:placeholder="i18n('index.post.content.placeholder')"
@change="value => { input.content = value }"/>
</div>
//출처 : https://github.com/StefanNeuser/vuejs2-summernote-component/blob/master/src/Summernote.js
export default {
template: '<textarea id="summernote" :name="name"></textarea>',
props: {
model: {
required: true,
},
name: {
type: String,
required: true,
},
height: {
type: String,
default: '150'
},
placeholder:{
type: String,
},
lang:{
type:String,
}
},
mounted() {
let config = {
height: this.height,
lang : this.lang,
placeholder : this.placeholder,
};
let vm = this;
config.callbacks = {
onInit: function () {
$(vm.$el).summernote("code", vm.model);
},
onChange: function () {
vm.$emit('change', $(vm.$el).summernote('code'));
},
onBlur: function () {
vm.$emit('change', $(vm.$el).summernote('code'));
},
};
$(this.$el).summernote(config);
},
}