2017-11-29 28 views
0

こんにちはすべて私は角検出について質問があります。私はlsIsOpen変数を更新していた場合 https://plnkr.co/edit/WiCL6qBxSgdvjaZFOgKn?p=preview角4 - 変数の変更時のビューの更新

(validerボタンをクリックします)、ビューを更新しない角度:

私はあなたのために、このサンプルを持っています。

public updateData(index, content):void { 
this.laBonusRateData[index].content = content; 
//Not work 
//this.lsIsOpen = 'toto'; 

//Works 
setTimeout(() => { 
    this.lsIsOpen = null; 
}, 1); 

}

あなたはなぜ私に説明できますか?私は迷っています:(

+0

更新するsuposed何 – FabioG

答えて

0

あなたのクリック関数showElemが行全体にバインドされている理由は、validerをクリックすると、updateDataとshowElemが呼び出されます。setTimeoutを使用すると、showElemが呼び出された後にsetTimeout 。。より良いソリューションがshowElemが列全体にバインドされていないということでしょう

テンプレートのためにこれを試してみてください:

@Component({ 
     selector: 'my-app', 
     template: ` 
     <tbody class="QTZ_default_table_font-bold"> 
     lsIsOpen : {{lsIsOpen}} 
     <tr *ngFor="let bonusType of laBonusRateData; let idx = index"> 
      <td> <!-- here no click function --> 
      <span (click)="showElem('item-'+idx)">items {{this.idx}}</span> <!-- CLICK ONLY ON ITEMS, NOT ON ROW --> 
      <div *ngIf="lsIsOpen === ('item-'+idx)"> 
      <form ngForm="bonus_form" #bonus_form> 
       <input type="input" name="content" size="1" [value]="laBonusRateData[idx].content" #content> <a (click)="updateData(idx, content.value)">valider</a> 
      </form> 
      </div> 
      </td> 
     </tr> 
     </tbody> 
     ` 
    }) 
+0

その作業を:)?。 あなたに感謝します –

関連する問題