Я пытаюсь передать массив объектов через activveroute.Когда я передаю его на следующую страницу, я получаю [объект объекта].Я видел вопрос о Stackoverflow, где они используют JSON.stringify, но у меня это не сработало.Или лучше использовать поставщиков приложений вместо параметров запроса.
TS страницы, отправляющей данные
criteriaList: ShipmentLookupCriteria[] = [];
navigateTo() {
const navigationExtras: NavigationExtras = {
queryParams: {
criteriaList: this.criteriaList
}
};
this.router.navigate(['/lookup/results'], navigationExtras);
}
TSстраница получения данных
this.sub = this.route.queryParams.subscribe(params => {
console.log(params.criteriaList);
});
Модель ShipmentLookUpCriteria
import { EquipReferenceTuple } from './equip-reference-tuple.model';
export class ShipmentLookupCriteria {
terminal: string;
equipReferenceList: EquipReferenceTuple[];
constructor(terminal: string, equipReferenceList: EquipReferenceTuple[]) {
this.terminal = terminal;
this.equipReferenceList = equipReferenceList;
}
}
ОБНОВЛЕНИЕ Я решил начать с чего-то простого.Поэтому я создаю массив объектов с фиктивными данными.
navigateTo() {
const navigationExtras: NavigationExtras = {
queryParams: {
criteriaList: [{ name: 1, age: 1 }, { name: 2, age: 2 }]
}
};
this.router.navigate(['lookup/results'], navigationExtras);
}
СТРАНИЦА, ПОЛУЧАЮЩАЯ ПАРАМЕТРЫ
this.route.queryParams.subscribe(params => {
console.log(params.criteriaList[0]);
});
RETURNS = [object Object]
Если я сделаю снова JSON.stringify показывает это как строку "[object Object]"
.если я params.criteriaList[0].name
возвращает undefined