如何存储异步回调函数的变量



我正在开发一个chrome扩展名,我正在尝试在插件内的文本中心的标签上输出选定的文本。

获得所选文本的功能很好,但是我无法将值设置为插件内的文本元素。

问题:如何正确存储该值,以便能够将其传递给TextArea,并使用数据结合?

html:

<div>
    <p>Here will appear the selected text :</p>
    <textarea name="selectedText" id="selectedText" [(ngModel)]="selectedText"></textarea>
    <button (click)="getSelectedText()">Get the selected text</button>
</div>

TS:

export class CaptureComponent {
    selectedText = '';
    getSelectedText() {
        chrome.tabs.executeScript( {
            code: 'window.getSelection().toString();'
        }, function(selection) {
            this.selectedText = selection[0];
        });
    }
}

selection[0]工作正常,所以我想我尝试存储数据的方式是不正确的,但是我似乎找不到将其更改为。

在您当前的方法中,this不参考您的组件。

更改回调以使用箭头功能来保持范围:

getSelectedText() {
   chrome.tabs.executeScript( {
     code: 'window.getSelection().toString();'
     }, (selection) => {
       this.selectedText = selection[0];
    });
}

相关内容

  • 没有找到相关文章

最新更新