ckEditor,AngularJS&Bootstrap 3 Modal-insertText()的行为不稳定
ckEditor, AngularJS & Bootstrap 3 Modal - insertText() behaves erratic
根据angular JS中用CKEditor内容更新文本区域值,并将CKEditor值绑定到angularjs和rails 中的模型文本,我有以下角度指令
angular.module('ngTeknorix')
.directive('ckEditor', ['$timeout', function ($timeout) {
return {
require: '?ngModel',
link: function (scope, elm, attr, ngModel) {
var ck = CKEDITOR.replace(elm[0]);
if (!ngModel) return;
ck.on('change', function () {
scope.$apply(function () {
ngModel.$setViewValue(ck.getData());
});
});
ngModel.$render = function (value) {
ck.setData(ngModel.$viewValue);
};
// This breaks!!
scope.addConfirmationLink = function () {
ck.insertText("Inserted Text");
}
}
};
}]);
这对于正常操作来说非常好,但一旦我尝试使用insertText或insertHtml函数在光标位置插入文本,它的行为就会不稳定。它有时会插入文本一次。。有时两次。。
有什么想法吗?
注意:所有这些都是在Bootstrap模式中完成的。
通常ckEditor将angularJS作为指令运行得非常好。
在ckeditor的"粘贴状态"事件中,您将值设置为角度模型:-
ck.on('pasteState', function () {
$timeout(function () {
ngModel.$setViewValue(ck.getData());
});
});
另一种方法是使用$render函数将值设置为ckEditor。
ngModel.$render = function (value) {
ck.setData(ngModel.$viewValue);
};
当您使用像insertText()或insertHtml()这样的ckEditor函数时,一切都会发生变化,因为pastestate事件会立即被激发(否则会在延迟后被调用)。当第二次调用insertText()并添加文本两次、第三次添加三次时,它的行为不稳定,依此类推
因此,为了使ckEditor与Bootstrap Modal和AngularJS一起工作,我们必须在关闭模态时使用ckEditor的destroy函数。。。。
angular.module('ngTeknorix')
.directive('ckEditor', ['$timeout', function ($timeout) {
return {
require: '?ngModel',
link: function ($scope, $element, $attrs, ngModel) {
$scope.initCkEditor = function () {
var ck = CKEDITOR.replace($attrs.id);
ck.on('pasteState', function () {
$timeout(function () {
ngModel.$setViewValue(ck.getData());
});
});
ngModel.$render = function () {
ck.setData(ngModel.$viewValue);
};
$scope.insertText = function (value) {
ck.insertText(value);
}
};
$scope.destroyCkEditor = function () {
if (CKEDITOR.instances[$attrs.id]) {
CKEDITOR.instances[$attrs.id].destroy(false);
}
};
}
};
}]);
相关文章:
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- Javascript”;结束”;函数工作不稳定
- nodeJS服务器性能缓慢且不稳定
- Javascript动画不稳定
- jQuery类选择器工作不稳定
- 视差'背景图像/位置/附件'jQuery的动画很不稳定
- 加载文件时xmlhttp不稳定,如何修复
- ckEditor,AngularJS&Bootstrap 3 Modal-insertText()的行为不稳定
- 如何捕捉不稳定的互联网连接
- Javascript和/或点击因过度拥挤而变得不稳定
- 不稳定的内部 HTML 行为.文本消失
- RTC 数据通道的行为不稳定
- 分页和过滤在 AngularJS 中不稳定
- 使用jQuery对某些元素的css属性进行颜色循环,:hover卡住且不稳定
- requireJS的不稳定行为
- jQuery.BlackAndWhite.js移动设备上不稳定
- Angularjs在使用身份验证时路由不稳定
- Javascript's排序为'不稳定'-我该如何避开这个
- 在Firefox中动态加载JQuery时不稳定
- 图像滑块不稳定