对于Textarea - Angular,类型'HTMLElement'上不存在属性'value'

dan*_*v91 3 html javascript typescript angular

使用Angular 4(typescript),我有以下HTML代码:

 <div *ngIf="dataService.selected_markers.length == 0" id="tsnPasteContainer">
      <form style="width: 100%; height: 100%">
        <textarea id="tsn_list" style="width: 100%; height: 100%" type="text" name="tsn_list" placeholder="e.g. 2001311,2425302,2153542,2435974"></textarea>
      </form>
    </div>
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下内容将用户输入的数据输入textarea:

public parseTSNs(){
    let tsnString = document.getElementById("tsn_list").value;
    console.log("User inputted string: " + tsnString);
}
Run Code Online (Sandbox Code Playgroud)

该功能由按钮调用.

代码未编译,原因如下:

Property 'value' does not exist on type 'HTMLElement'
Run Code Online (Sandbox Code Playgroud)

这应该是一个简单的功能.我究竟做错了什么?W3schools"从textarea获取价值"显示'.value'作为必需的功能!

Sar*_*ana 13

你只需断言元素的类型即可HTMLTextAreaElement.因为document.getElementById返回HTMLElement而不是所有html元素都具有以下value属性:

let tsnString = (document.getElementById("tsn_list") as HTMLTextAreaElement).value;
Run Code Online (Sandbox Code Playgroud)

但是当你使用Angular时,你可能应该使用数据绑定而不是自己查询值