gpt4 book ai didi

javascript - AngularJS CKEditor 中最后一个字母的 chop

转载 作者:行者123 更新时间:2023-11-30 12:29:56 24 4
gpt4 key购买 nike

我有一个网页,它使用 CKEditor 创建一个用于编写消息的简单编辑 Pane 。我遇到的问题是,当我单击发送消息时,从 CKEditor 检索的内容是 Pane 的内容,但最后一个字母被 chop 了。

以下是我认为是应用程序的相关代码:

appDirectives.directive('ckEditor', function() {
return {
require : '?ngModel',
link : function(scope, elm, attr, ngModel) {
var ck = CKEDITOR.replace(elm[0], {
toolbar: [
{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] },
{ name: 'clipboard', items: [ 'Cut', 'Copy', 'Paste' ] },
{ name: 'links', items: [ 'Link', 'Unlink' ] }
],
removePlugins: 'elementspath'
});

if (!ngModel)
return;

ck.on('instanceReady', function() {
ck.setData(ngModel.$viewValue);
});

function updateModel() {
scope.$apply(function() {
ngModel.$setViewValue(ck.getData());
});
}

ck.on('change', updateModel);
ck.on('key', updateModel);
ck.on('dataReady', updateModel);

ngModel.$render = function(value) {
ck.setData(ngModel.$viewValue);
};
}
};
});

和 HTML:

<div>
<div class="actions">
<button class="sendButton" ng-click="send()" type="button">
Send
</button>
</div>
<div>
{{message.content | warnIfContentMaxExceeded}}
</div>
<div class="body">
<textarea ck-editor="" id="contentEditor"
name="contentEditor" rows="10" cols="60"
ng-model="message.content"
value="message.content"></textarea>
</div>
</div>

从 Controller :

$scope.send = function() {
var msg = $scope.message;
// ...
}

查看我设置编辑器的指令,我猜也许 ck.on('change', updateModel); 不会在写入字符后立即触发给编辑。但是,点击框外似乎不会触发任何类型的更改事件,所以我不确定。

配置/代码是否有错误?

或者我是否可能只需要升级到更新版本的 CKEditor?

使用:

  • AngularJS::1.3.4
  • ng-ckeditor::0.2 (ckeditor 4.1.2)

最佳答案

根据我自己的进一步调查,我发现升级到 CKEditor 4.4.6 可以解决问题。

我必须假设早期版本中的错误已在 4.1.2 和 4.4.6 之间的某个时间点得到修复。

注意 - 这可能是许多人的首选解决方案。但是,@Nenotlep 的答案适用于此版本的 CKEditor,因此我接受并创建此答案以获取更多信息。

关于javascript - AngularJS CKEditor 中最后一个字母的 chop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28067007/

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