首页 > 解决方案 > 如何使用 TinyMce 触发 Angular 组件中的功能?

问题描述

目前我正试图让 TinyMce 的编辑器在其按钮触发“onAction”时触发本地函数,但它不接受任何带有“this.”的变量。

        onAction: function () {
          alert('Button clicked!');
          if (this.fileUpload) {
            this.fileUpload.nativeElement.click();
          }
          // Cannot use any function or variable with 'this.'
        }

虽然这不是触发,但这是触发:

        onAction: this.postMessage()

但是由于某种原因,这将在每次组件初始化(而不是单击)时触发。onAction 与一个按钮绑定,该按钮应该仅在单击时触发,但它不能以这种方式工作。

标签: angulartinymceangular8

解决方案


这是因为您正在使用function来声明您的函数。范围现在在该函数内。如果您使用箭头函数,它将起作用。

所以它会是:

onAction: () => {
      alert('Button clicked!');
      if (this.fileUpload) {
        this.fileUpload.nativeElement.click();
      }
    }

请注意,您还必须更改创建按钮的功能。现在你可能从 TinyMCE 文档中得到类似的东西:

setup: function (editor) { 

您还想将其更改为箭头函数:

setup: (editor) => {

推荐阅读