财产'检查'在类型' HTMLElement'中不存在角4

时间:2017-12-28 05:51:31

标签: angular checkbox

我想从ts(类型脚本)文件中获取复选框选中的值。为此,我有一个布尔变量,目的是使用此变量值显示和隐藏div,但我遇到了问题。请帮我解决这个问题,并给我正确的方法来解决这个问题。这是我的代码......

html代码

**checkbox code**abcde" class="form-check-input" id="abcde" value="1"
(change)="checked('abcde')"> abcde

显示和隐藏代码

*ngIf='shown'

ts文件

checked(value) {

    let get_id = document.getElementById('abcde');

    if (get_id.checked == true) {
        this.shown = true
    }
    else if (get_id.checked == false)
        this.shown = false;
}

当我运行服务时,我得到"财产'检查'类型' HTMLElement'"

上不存在

提前致谢!

4 个答案:

答案 0 :(得分:5)

在您的HTML中

<input #abcde  type="checkbox" (change)="fun()" />

在您的组件中

import { Component, ViewChild, ElementRef } from '@angular/core';
@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
    @ViewChild('abcde') abcde: ElementRef;
       func(){
          this.abcde.nativeElement.checked 
        }


}

答案 1 :(得分:4)

使用此:

const ele = document.getElementById("idOfElement") as HTMLInputElement;
ele.checked = false;

答案 2 :(得分:2)

//Typescript File (app.component.ts)         
    import { Component } from 'angular/core';
                @Component({
                  selector: 'app-root',
                  template: './app.component.html',
                  styleUrls: ['./app.component.css']
                })
                export class AppComponent {
                   public shown = false;
                } 

    //Html Code (app.component.html)
        <form #myForm='ngForm'>      
                <input type="checkbox" class="form-control" 
                     #checkBox="ngModel" 
                  [(ngModel)]="shown" name="checkBox">
        </form>
                <div *ngIf="shown"> 
                    <!---Your Code Here...--->
                </div>

这里,这是基于复选框选择和取消选择来显示和隐藏div元素的方法之一。这里使用显示的变量进行双向绑定。

答案 3 :(得分:1)

只需转到您的nodemodules文件夹

\ node_modules \ typescript \ lib \ lib.dom.d.ts

文件名:lib.dom.d.ts

搜索“任何HTML元素”。一些元素直接实现此接口的行号。 6374(在我的节点模块中)

,然后在interface HTMLElement中添加 checked: boolean;

see image where it is

还需要添加全局节点模块 按下控制键并快速修复声明属性 checked: boolean;

see this image for global nodemodules