を許可していません。フィルタされた表の項目にアクセスできました。Angular2/4 ngForディレクティブは、変数の割り当て私は私のHTMLテンプレートで次の操作を行うために使用される私のAngularJSアプリで
角度2/4でこの割り当てができないので、角度2/4でどのようにすることができますか?
UPDATE:
コンポーネント:
export class UsersComponent implements OnInit {
users = [];
totalItems = 0;
filteredUsers = [];
filteredUser: User;
constructor(private dataService: DataService) { }
ngOnInit() {
this.dataService.getUsers()
.subscribe(
(data: any) => {
this.users = data.data;
},
msg => console.error(`Error: ${msg.status} ${msg.statusText}`)
);
}
trackItems(index, item){
this.totalItems = index+1;
this.filteredUsers.push(item); // <- This does not work? Should be able to push the item to my filteredUsers array?
return item ? item.id : undefined;
}
}
テンプレート:
<tr *ngFor="let user of users | filterBy: ['firstName', 'lastName', 'email']: searchTerm; trackBy: trackItems">
エラーメッセージ:
UsersComponent.html:49 ERROR TypeError: Cannot read property 'push' of undefined
at DefaultIterableDiffer.webpackJsonp.../../../../../src/app/pages/users/users.component.ts.UsersComponent.trackItems [as _trackByFn] (users.component.ts:108)
at DefaultIterableDiffer.webpackJsonp.../../../core/@angular/core.es5.js.DefaultIterableDiffer.check (core.es5.js:6857)
at DefaultIterableDiffer.webpackJsonp.../../../core/@angular/core.es5.js.DefaultIterableDiffer.diff (core.es5.js:6830)
at NgForOf.webpackJsonp.../../../common/@angular/common.es5.js.NgForOf.ngDoCheck (common.es5.js:1669)
at checkAndUpdateDirectiveInline (core.es5.js:10837)
at checkAndUpdateNodeInline (core.es5.js:12330)
at checkAndUpdateNode (core.es5.js:12269)
at debugCheckAndUpdateNode (core.es5.js:13130)
at debugCheckDirectivesFn (core.es5.js:13071)
at Object.View_UsersComponent_0._co [as updateDirectives] (UsersComponent.html:58)
UsersComponent.html:49 ERROR CONTEXT DebugContext_ {view: Object, nodeIndex: 97, nodeDef: Object, elDef: Object, elView: Object}
ありがとうございます! 1つの追加エラーが発生しています。 trackHero関数内のコンポーネント内の配列にアイテムをプッシュできません。私がtrackHero内のコンポーネントで定義した変数にアクセスしようとすると、定義されていないと言っていますか? –
質問を説明するためのコードを追加してください。答えが正しいと思われる場合は、他の人を助けるために受け入れてください。 –
@DavidFinchあなたが押されている配列が定義されていることを確認してください、どうすれば配列にアクセスしているのかわかりませんが、変数の範囲に関連するものかもしれません。 –