Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度2复选框全部选中_Angular - Fatal编程技术网

Angular 角度2复选框全部选中

Angular 角度2复选框全部选中,angular,Angular,我有一个清单来检查项目名称。在底部,我想放置一个复选框来选中或取消选中它们。我想我需要一个*ngIf(如果选中)和一个*ngFor循环(全部选中),但这是一个相当大的挑战。。。我想不出该怎么处理这件事。我是否使用(选中)或某物或*ngIf=“(选中)”然后使用*ngFor循环来设置project.isChecked。我无法理解其中的逻辑 <div id="drp-project-select"> <div class="scroller" [hidden]="!

我有一个清单来检查项目名称。在底部,我想放置一个复选框来选中或取消选中它们。我想我需要一个*ngIf(如果选中)和一个*ngFor循环(全部选中),但这是一个相当大的挑战。。。我想不出该怎么处理这件事。我是否使用(选中)或某物或*ngIf=“(选中)”然后使用*ngFor循环来设置project.isChecked。我无法理解其中的逻辑

<div id="drp-project-select">
        <div class="scroller" [hidden]="!showMenu">
            <div id="search-wrapper">
                <i class="fa fa-search fa-xs"></i>
                <input [(ngModel)]="searchTerm" type="text" placeholder="Zoek op naam..." #search>
            </div>   
            <ul>
                <li *ngFor="#project of projectdata.LoginResponse?.ProjectVM | searchpipe:'Project':search.value">
                    <label class="checkbox-label" >
                        <input type="checkbox" class="dropdown-checkbox" [(ngModel)]="project.isChecked" (change)="addProject(project)" >
                        <span>{{project.Project}}</span>
                    </label>
                </li>
            </ul>
        </div>
        <div class="bottom-data" [hidden]="!showMenu">
            <label><input type="checkbox" id="bottom-checkbox"></label>
        </div>
    </div>

    {{project.project}

我将使用“全部选中/取消选中”复选框上的控件,在用户选中或取消选中时收到通知:

<input type="checkbox" [ngFormControl]="allCtrl"/>

我在说“意外令牌”时出错。经过仔细检查,我怀疑猫王操作员是否工作,但它没有。elvis运算符已从构造函数中删除,现在效果很好:)您介意编辑您的答案吗?这样,如果以后查找此帖子,运算符将不会抛出?那我就可以把你的答案记为正确答案了。这是个打字错误。Elvis运算符只能与视图中的表达式一起使用,而不能与TypeScript代码中的表达式一起使用。。。谢谢你指出这一点!我更新了我的答案。
Control
来自哪里?谢谢你;这是一个比
$(this)更好的重构。单击当前代码中的()。但是,我的问题是,在为各个复选框调用事件时,
isChecked
属性尚未更新。
constructor() {
  this.allCtrl = new Control();
  this.allCtrl.valueChanges.subscribe(
    (val) => {
      this.projectdata.LoginResponse.ProjectVM.forEach((project) => {
        project.isChecked = val;
      });
    });
}