【问题标题】:Keydown event CKEditor using instanceKeydown事件CKEditor使用实例
【发布时间】:2026-02-07 17:20:04
【问题描述】:

我想要获取 ckeditor 的 keydown 事件,但要在 AngularJS 中使用实例。 我创建了一个指令并将 keydown 事件发送到我的作用域函数。但是我的页面中有很多ckeditor。每次 keydown,我都会获得所有 ckeditor 实例的 keydown 事件。

指令:

app.directive('ckEditor', function () {
  return {
    require: '?ngModel',
    link: function (scope, elm, attr, ngModel) {
      var ck = CKEDITOR.replace(elm[0]);
      if (!ngModel) return;

      ck.on('pasteState', function() {
        scope.$apply(function() {
          ngModel.$setViewValue(ck.getData());
        });
        var editable = ck.editable();

        editable.attachListener( ck.document, 'keydown', function(event) {
            scope.keyboard_events(event);
        });
      });

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

    }
  };
});

我的控制器:

$scope.keyboard_events = function(event) {
  console.log( "agora sim ")
}

【问题讨论】:

    标签: angularjs ckeditor keypress keydown


    【解决方案1】:

    我使用angular-ckeditor 解决了我的问题。使用实例和 ng 模型要好得多。 (https://github.com/lemonde/angular-ckeditor)

    【讨论】: