2016-02-25 17 views
6

プロジェクト名を確認するためのリストがあります。一番下のチェックボックスをオンにして、チェックボックスをオンにしたり、チェックボックスをすべてオフにしたりします。 * ngForループ(チェックしてください)で* ngIf(チェックされていれば)が必要だと思いますが、これはかなり挑戦です...私はこれでどのように手続きしなければならないのか分かりません。 (チェックした)ものか* ngIf = "(チェック済み)"を使用して、* ngForループを使用してproject.isCheckedを設定しますか?私はこれの論理の中に入ることはできません。角2チェックボックスすべてをチェック

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

allCtrlコンポーネントのコンストラクタ内で初期化されています。私は、「チェック/チェックを外し、すべての」チェックボックスのユーザーチェックやチェックを解除通知すべきは、上のコントロールを使用することになり

<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> 

答えて

4

私が言ってエラーを得た

constructor() { 
    this.allCtrl = new Control(); 
    this.allCtrl.valueChanges.subscribe(
    (val) => { 
     this.projectdata.LoginResponse.ProjectVM.forEach((project) => { 
     project.isChecked = val; 
     }); 
    }); 
} 
+0

を:次に、あなたの更新が通知されるために、このコントロールのvalueChangesプロパティに対して登録することができ、それに応じisCheckedフィールドを更新し、「予期しないトークンを。」注意深い点検の後、私はエルヴィスのオペレーターが働いたかどうか疑問に思いました。エルヴィス演算子はコンストラクタから削除されました。現在はうまくいきます:) あなたの答えを編集してもいいですか?この投稿が将来検索されると、演算子は投げられませんか?あなたの答えを正しいものとしてマークすることができます。 – JanVanHaudt

+1

ああ私の神。それはタイプミスです。 Elvis演算子は、TypeScriptコードではないビュー内の式でのみ使用できます。これを指摘してくれてありがとう!私は自分の答えを更新しました。 –

+0

「制御」はどこから来たのですか? – avoliva

関連する問題