繁体   English   中英

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

[英]How to store the variable of an asynchronous callback function

我正在开发chrome扩展程序,并尝试在插件内textarea中的选项卡上输出所选文本。

获取所选文本的功能效果很好,但是我无法将值设置为插件内的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];
    });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM