システム内のすべてのユーザーのリストを検討してください。
allUsers = {
a: {name:'Adam',email:'adam@testco.com',level:'admin',group:'Owners'},
b: {name:'Barbra',email:'Barbra@testco.com',level:'admin',group:'Owners'},
c: {name:'Chris',email:'Chris@otherplace.net',level:'standard',group:'Managers'},
d: {name:'Dennis',email:'dsmolek@showman.com',level:'standard',group:'Managers'},
e: {name:'Elizabeth',email:'eadams@testco.com',level:'standard',group:'Staff'},
f: {name:'fred',email:'fred@testco.com',level:'visitor',group:'Visitor'},
}
次に、プロジェクトのユーザーのリスト:
usersList = ['a','b','d','f'];
したがって、ユーザーIDを取得して残りのユーザー詳細を検索するための簡単な関数があります。
getUser(userId){
console.log('Getting User with Id:', userId);
if(allUsers[userId]) return allUsers[userId];
}
次に、テンプレートで *ngFor を使用してリスト内のユーザーをループしますが、詳細の完全なセットを検索する必要があります
<tr *ngFor="#userId in usersList" #user="getUser(userId)">
<td>{{user.name}}</td>
</tr>
うまくいきません...カスタムコンポーネントやその他のより複雑なものを作成しないと、ユーザーごとに getUser 関数を実行する方法がわかりません。もちろん、次のように何度も実行できます。
<td>{{getUser(userId).name}}</td>
しかし、これは最善の方法ではないようです。userId 変数にアクセスしてローカル変数として設定する簡単な方法はありますか?