2つのシンプルなコンポーネントがあります。 1つはリスティングユーザー用、もう1つは詳細表示用です。ngIf条件が満たされたときに追加データを取得します
私は特定のユーザーを選択すると、このユーザーは変数selectedUserにバインドされます。詳細コンポーネントではngIfが満たされ、このユーザーに関連するデータをさらに取得するよう追加の要求を行います。
これを実装する適切な方法は何ですか?私はカスタム関数を作成すると、それは私のAPIに大量のリクエストを作り始めるが、私はそれを一度しか必要としない。ありがとう!
@Component({
selector: 'users',
template: `
<div *ngFor="#user of users"
(click)="onSelect(user)">
{{ user.name }}
</div>
<user-detail [user]="selectedUser"></user-detail>
`
export class UserComponent {
onSelect(user: IUser) {
this.selectedUser = user;
}
}
@Component({
selector: 'user-detail',
template: `
<div *ngIf="user">
{{ user.name }} {{ user.id }}
<div *ngFor="task of tasks"> <-- this is what i actually try to fetch
</div>
</div>
`
export class UserDetailComponent {
@Input() user: IUser[];
}
で、その後
はい、それは動作します:
(JavaScriptで)線に沿って何かを!条件が満たされると、コンポーネントが挿入されます。しかし、私が選択したユーザーを変更すると、それは再び初期化されません。おそらくここでngOnChangesを使うべきですか?どういうわけか結果をキャッシュすることはできますか?あなたはJavaScriptで私が知っているさせるためにあまりにも – v01d
ので、その後 'ngDoCheck'がngOnInit' –