在directive
中的Angular
内,我执行了以下操作:
let input: HTMLElement = renderer.createElement('input');
renderer.appendChild(this.elem.nativeElement, input);
,当我尝试使用以下方法获取此输入中写入的值:
console.log('value', input.value);
我收到此错误:
Property 'value' does not exist on type 'HTMLElement'.
尽管我们所有人现在都希望使用javascript从输入中获取价值,但我们可以执行以下操作:
document.getElementById("searchTxt").value;
和document.getElementById()
返回null或HTMLElement
对象:
/ ** *返回具有指定ID或NAME属性值的第一个对象的引用。 * @param elementId指定ID值的字符串。不区分大小写。 * / getElementById(elementId:string):HTMLElement | null;
那我为什么会收到这个错误?!
答案 0 :(得分:6)
改为使用HTMLInputElement
:
let input: HTMLInputElement= renderer.createElement('input');
HTMLElement接口中没有“ value”属性,因此会出现这些.ts错误。 HTMLInputElement接口扩展了HTMLElement并具有“值”属性。