угловой 10 в переменной массива шаблона html не соответствует объявлению типа

#arrays #angular #templates #global

Вопрос:

Я использую глобальную переменную и тип, определенный как:

глобальный.ts

 export type ReservationCurrentPC = Array<{StartDateTime: string, EndDateTime: string, Who: string}>;
export class GlobalVariables {
    public static ReservationsCurrentPC: ReservationCurrentPC = [];
}
 

затем импортировал его в component .ts

 import { GlobalVariables , ReservationCurrentPC } from '../GlobalVariables';
 

затем сделал запрос на component.ts для использования его в своем html-шаблоне.

 get GetReservationsMyPC(): ReservationCurrentPC { return GlobalVariables.ReservationsCurrentPC; };
 

затем он выполняет один толчок, как:

 case 'RSV':
    // stemp[i].Param1 = PCNameID.
    // stemp[i].Param2 = StartDate.
    // stemp[i].Param3 = EndDate.
    // stemp[i].Param4 = ReserveByAccountName.

GlobalVariables.ReservationsCurrentPC.push (stemp[i].Param2, stemp[i].Param3, stemp[i].Param4);
 

а затем попробуйте использовать его в html-шаблоне.

     <div *ngFor="let b of GetReservationsMyPC">
        <li>
            Desde [{{b.StartDateTime}}] hasta [{{b.EndDateTime}}] reservado para: {{b.Who}}
        </li>
        <button (click)="RemReserve(b.StartDateTime)">Remover esta reserva</button>          
    </div>
 

проблема в том, что html-код 3 раза зацикливается с переменной «b», и он не распознает структуру типа, например, 3 поля на элемент и , например, b.StartDateTime, b.EndDateTime, b.Который ничего не возвращает, только если напечатать только переменную «b», то 3 строки будут вытеснены, как если бы это был один простой массив.

Как правильно обрабатывать эту структурированную переменную в html-шаблоне? Я видел несколько примеров, но, используя переменную локального компонента, и это работает, но мне нужно использовать эту глобальную переменную, потому что она должна быть заполнена из другого компонента (который обрабатывал представление карты, в котором пользователь нажимает, и объект, нажатый на карте, запускает несколько событий, и именно там запрашивается информация из API об объекте, нажатом, и в ответ он возвращает данные для нажатия), поэтому это должна быть глобальная переменная, поскольку она обрабатывается в нескольких компонентах.

Комментарии:

1. Я вижу это в консоли отладки JS,. push сломан, он нажимает как три основных элемента, а не как один элемент с 3 полями. Пытаюсь понять, как это сделать правильно.

Ответ №1:

исправлено:

 GlobalVariables.ReservationsCurrentPC.push ({StartDateTime: stemp[i].Param2, EndDateTime: stemp[i].Param3, Who: stemp[i].Param4 });
 

Какое приключение для меня!.