Шаблон не обнаруживает изменения в модели запаса, когда для переменной флажка установлено значение true. Я пытался использовать обнаружение изменений, но не уверен, правильно ли я реализую, поэтому я пока удалил его из своего примера кода. Как ни странно, у меня не было проблем до того, как я начал извлекать данные из удаленной службы.
Вот пример моего плункера: http://plnkr.co/edit/0EfkaSpk3Ag9p5NH5jJ2?p=preview< /а>
Вот мой контроль:
<tr *ngFor="let stock of stocksObservable | async;">
<td>
<input [checked]="stock.isChecked" (change)="stock.isChecked = !stock.isChecked;onSelectStock($event);" type="checkbox"> <a href="">{{ stock.number }}</a> {{stock.isChecked}}
</td>
</tr>
В моем ng-контейнере я должен увидеть акции, которые я выбрал. Вместо этого я не вижу никаких изменений или обновлений...
<table>
<tr>
<th>Is Checked</th>
</tr>
<ng-container *ngFor="let stock of stocksObservable | async;">
<tr *ngIf="stock.isChecked">
<td>
<a href="">{{stock.number}}</a> {{stock.isChecked}}
</td>
</tr>
</ng-container>
</table>
Вот мой класс:
//services
branchesObservable : Observable<object> ;
stocksObservable : Observable<object> ;
isChecked: boolean;
selectable: boolean;
constructor( private stocksService: StocksService ) {
this.branchesObservable = this.stocksService.get_branches();
}
//fetch stock data into table
getBranchStocks(value){
this.stocksObservable = this.stocksService.get_stocks(value);
}
//select stocks
onSelectStock(event) {
this.isChecked = !this.isChecked;
}
stocksObservable | async
дважды. Таким образом, вы дважды подписываетесь на наблюдаемую, отправляете 2 HTTP-запроса и получаете два разных массива акций. Не используйте асинхронность, если вы действительно не понимаете, как она работает. - person JB Nizet   schedule 24.12.2017