gpt4 book ai didi

javascript - 在 Vue.js 中使用 CKeditor 实例

转载 作者:行者123 更新时间:2023-11-28 19:09:01 27 4
gpt4 key购买 nike

我正在尝试在我的 Laravel 后台实现 CKeditor,它使用 Vue.js 构建其 View

在此表单中,我想用文本编辑器替换 name="ckeditor1"的“textarea”

    <form method="POST" v-on="submit: onSubmitForm">
<div class="col-md-4">

<h1>Pagina: @{{ page.name }}</h1>

<h2>Pagina algemeen</h2>

<div class="form-group">
<label for="name">
Name
<span class="error" v-if="! page.name">*</span>
</label>
<input type="text" name="name" id="name" class="form-control" v-model="page.name">
</div>

<ul class="nav nav-tabs">
<li class="" v-repeat="page.translations" v-class="active: language == defaultLanguage"><a
data-toggle="tab" href="#@{{ language }}">@{{ language }}</a></li>
</ul>
<div class="tab-content">
<div v-repeat="page.translations" id="@{{ language }}" class="tab-pane fade in "
v-class="active: language == defaultLanguage">
<h2>Pagina inhoud</h2>

<div class="form-group">
<label for="name">
Titel
</label>
<input type="text" name="title_@{{ language }}" id="title_@{{ language }}"
class="form-control" v-model="title">
</div>
<div class="form-group">
<label for="content">
Inhoud
</label>
<textarea name="ckeditor1" id="content_@{{ language }}"
class="form-control editor" v-model="content"></textarea>
</div>

<h2>Seo</h2>

<div class="form-group">
<label for="meta_keywords">
Meta keywords
</label>
<input type="text" name="meta_keywords_@{{ language }}"
id="meta_keywords_@{{ language }}" class="form-control"
v-model="meta_keywords">
</div>
<div class="form-group">
<label for="meta_decription">
Meta description
</label>
<textarea name="meta_description_@{{ language }}"
id="meta_description_@{{ language }}" class="form-control"
v-model="meta_description"></textarea>
</div>
<input type="hidden" name="page_id_@{{ language }}" id="page_id_@{{ language }}"
class="form-control" v-model="page_id" value="@{{ pageId }}">
</div>
</div>

<div class="form-group" v-if="! submitted">
<button type="submit" class="btn btn-default">
Opslaan
</button>
</div>
</div>
</form>

@{{ }} 字段已加载并填充了 json 调用和 vue.js,但没有问题,因为所有字段都根据需要完美填充。问题只是我的编辑器的初始化。

这是我获取数据的地方:

Vue.http.headers.common['X-CSRF-TOKEN'] = document.querySelector('#token').getAttribute('value');

var pages = new Vue({
el: '#page',
data: {
pageId: document.querySelector('#page-id').getAttribute('value'),
pageTitle: 'Pagina',
page: [],
submitted: false,
defaultLanguage: 'nl',
errors: false
},

ready: function() {
this.fetch();
},

methods: {
fetch: function() {
this.$http.get('/api/pages/' + this.pageId, function(response) {

this.page = response;
});
},
onSubmitForm: function(e) {
e.preventDefault();
this.submitted = true;
this.errors = false;

if(this.pageId == 0) {
this.$http.post('/api/pages/', this.page, function (response) {
if (response.errors.length) {
this.errors = response.errors;
this.submitted = false;

return;
}//endif

this.submitted = false;
window.location.href = '/admin/pages';
});
}
else
{
this.$http.put('/api/pages/' + this.pageId, this.page, function (response) {

if (response.errors.length) {
this.errors = response.errors;
this.submitted = false;

return;
}//endif

this.submitted = false;
window.location.href = '/admin/pages';
});
}
}

}
});

更新 -> 已解决

通过添加 Vue.nextTick 我可以初始化编辑器。我向每个文本区域添加了一个“编辑器”类,我希望它成为一个编辑器,然后从带有 class="editor"的文本区域中查找所有 id。

fetch: function() {
this.$http.get('/api/pages/' + this.pageId, function(response) {

this.page = response;

Vue.nextTick(function () {
$('textarea.editor').each(function(){
CKEDITOR.replace(this.id);
});
});
});
},

最佳答案

通过添加 Vue.nextTick 我可以初始化编辑器。我向每个文本区域添加了一个“编辑器”类,我希望它成为一个编辑器,然后从带有 class="editor"的文本区域中查找所有 id。

fetch: function() {
this.$http.get('/api/pages/' + this.pageId, function(response) {

this.page = response;

Vue.nextTick(function () {
$('textarea.editor').each(function(){
CKEDITOR.replace(this.id);
});
});
});
}

关于javascript - 在 Vue.js 中使用 CKeditor 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31104438/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com