如何使用组件 TinyMCE init parent 中的函数

how to use function from parent of component TinyMCE init

我在 parent 中创建了一个上传功能。初始化 tinymce 时,我将组件的 [init] 绑定到 loadConfig() 函数。

 <editor [(ngModel)]="data" [init]="loadConfig()"></editor>

loadConfig 包含以下 images_upload_handler:

images_upload_handler: function (blobInfo, success, failure) {
        const code = this.upload(blobInfo);
        if (code !== 0) {
          success(code);
        } else {
          failure(code);
        }
      }

但是现在,当我尝试上传某些内容时,它会抱怨上传未定义。我假设是这种情况,因为 this 的范围发生了变化。

我尝试监听 (onInit) 事件,然后将函数引用替换为以下代码

event.editor.settings.images_upload_handler = this.Upload;

但是现在它抱怨 this.apiService 未定义,因为我认为它仍然没有使用正确的范围。

我考虑过使用 XMLHttpRequest(),但我缺少使用它的安全令牌。此外,我更喜欢使用我创建的 apiService。如何使用 images_upload_handler 而不丢失我的 apiService 的范围?

最后,我通过将函数更改为箭头函数解决了这个问题。箭头函数没有自己的 this 或 super 绑定。

images_upload_handler: (blobInfo, success, failure) => {
        const code = this.upload(blobInfo);
        if (code !== 0) {
          success(code);
        } else {
          failure(code);
        }
      }