Я не могу получить доступ к элементам ng-repeat внутри директивы

У меня есть проблема с Angular. Я только недавно начал использовать Angular, поэтому пока не знаю всего, что нужно знать. Я использую AGM (Angular Google Maps) и пытаюсь добавить маркеры на карту следующим образом:

<agm-map> ... </agm-map>

внутри:

<agm-marker [latitude]="lat" [longitude]="lng"></agm-marker>

это работает. Однако, когда я пытаюсь динамически добавить маркеры из списка данных в моем component.ts, он говорит, что не может читать... из неопределенного.

<agm-marker *ngFor="let item in data" [latitude]="item.point_lat" [longitude]="item.point_lng"></agm-marker>

Я предполагаю, что к этому предмету пока нет доступа. Но я не могу понять, как это должно..

РЕДАКТИРОВАТЬ: Когда я запускаю это, данные отображаются, как ожидалось.

<tr *ngFor="let item of data">
    <th>{{item.point_lat}}</th> //51.34454736511800 
    <td>{{item.point_lng}}</td> //4.32184512840880
</tr>

1 ответ

Решение Shadowlauch и OP.

item.point_lat & item.point_lng являются строками. В то время как <agm-marker> ожидает цифры. Я написал функцию в component.ts

stringToNumber(val: number) {
    return Number(val);
}

и преобразовал строку в число как:

<agm-marker *ngFor="let item of data" [latitude]="stringToNumber(item.point_lat)" [longitude]="stringToNumber(item.point_lng)"></agm-marker>
Другие вопросы по тегам