Так как я создал и добавил пользовательский фильтр трубы для массива я получаю это исключение, когда вид нагрузки:Не удается прочитать свойство «0» неопределенных с пользовательским фильтром трубы
TesttypesListComponent - inline template:35:14 caused by: Cannot read property '0' of undefined
Это должно иметь что-то Todo I Догадайтесь, как я загружаю данные.
Прежде чем я добавил, что загрузка данных по трубам работала!
Я могу поставить точку останова в трубу, но она не попадает внутрь из-за ошибки.
У кого-нибудь есть идея, что я делаю неправильно с моей первой трубкой?
ТРУБА
импорт {Труба, PipeTransform} от '@ угловой/сердцевины';
@Pipe({
name: 'TestTypePipe'
})
export class TestTypePipe implements PipeTransform {
transform(testTypes, args?) {
let [currentSubject, currentSchoolclass] = args;
if (!currentSubject || !currentSchoolclass) {
return [];
}
else {
return testTypes.filter(s => {
return s.subjectId == currentSubject.subjectId && s.schoolclassId == currentSchoolclass.schoolclassId;
});
}
}
}
HTML
<tbody>
<tr *ngFor="let t of testTypes | TestTypePipe:currentSubject:currentSchoolclass; let i = index">
<template [ngTemplateOutlet]="getTemplate(t)" [ngOutletContext]="{ $implicit: t, index: i }"></template>
</tr>
</tbody>
КОМПОНЕНТ
currentSubject: Subject;
currentSchoolclass: Schoolclass;
ngOnInit() {
this.route.params.subscribe(params => { this.schoolyearId = parseInt(params['id']); });
this.testService.getTestTypes(this.schoolyearId).subscribe(data => {
this.schoolclasses = data.schoolclasses.map(m => new Schoolclass(m));
this.subjects = data.subjects.map(m => new Subject(m));
for (let t of data.testTypes) {
t.viewMode = ViewMode.Displaying;
let testType = new AssignedTestType(t);
this.testTypes.push(testType)
}
}
); }
Будет ли вызываться труба, если вы удалите параметры ': currentSubject: currentSchoolclass'? –
Затем я получаю эту ошибку: не могу прочитать свойство «0» неопределенного в TestTypePipe.transform (http: // localhost: 4200/main.bundle.js: 72680: 34) по адресу http: // localhost: 4200/main.bundle .js: 20150: 22 at => Кажется, я буду нарушать и консоль. Завтра кое-что выучите, чтобы найти неопределенный ... – Pascal
hum, right, that's из-за строки let внутри transform, он пытается читать параметры из массива –