编辑:更新Plunkr: http ://plnkr.co/edit/fQ7P9KPjMxb5NAhccYIq?p=preview 这部分工作: <div *ngFor="let entry of entries | async"> Label: {{ entry.label }}<br> Value: {{ entry.value }} </div> 但是我在select框有问题,错误信息是: 无法绑定到'ngModel',因为它不是'select'的已知属性 整个组件: //our root app component import {Component} from '@angular/core'; import {NgFor} from '@angular/common'; import {HTTP_PROVIDERS, Http} from '@angular/http'; import 'rxjs/Rx'; import {Observable} from 'rxjs/Rx'; @Component({ selector: 'my-app', providers: [HTTP_PROVIDERS], template: ` <select [(ngModel)]="selectValue" […]
在Angular应用程序中使用Subscription.unsubscribe()的最佳实践是什么? 什么时候应该存储Subscription并在销毁事件上调用unsubscribe()以及何时可以忽略它们。 保存所有的订阅引入了很多混乱的组件代码。 HTTP客户端指南忽略像这样的订阅: getHeroes() { this.heroService.getHeroes() .subscribe( heroes => this.heroes = heroes, error => this.errorMessage = <any>error); } 在同一时间路线和导航指南说: 最终,我们将在其他地方导航。 路由器将从DOM中删除这个组件并销毁它。 在这之前我们需要自己清理。 具体来说,我们必须在Angular销毁组件之前取消订阅。 不这样做可能会造成内存泄漏。 我们在ngOnDestroy方法中取消订阅我们的Observable 。 private sub: any; ngOnInit() { this.sub = this.route.params.subscribe(params => { let id = +params['id']; // (+) converts string 'id' to a number this.service.getHero(id).then(hero => this.hero = hero); }); […]