Я настраиваю небольшое веб-приложение, используя angular и arcGIS API для JS.ArcGIS создает mapView, который снабжен картой и элементом (обычно элементом DOM), к которому должен быть добавлен mapView.Из-за абстракции Angulars из DOM и Typescript необходимо использовать ElementRef.Поскольку я пытаюсь получить доступ к пользовательскому интерфейсу, чтобы добавить кнопку, я столкнулся с ошибкой, потому что пользовательский интерфейс, который обычно равен данному контейнеру DOM, больше не является объектом DOM. Каков правильный способ решения этой проблемы?
Я попытался добавить кнопку в конструктор mapView, но это не сработало.Я также попытался добавить его в сам ElementRef.
constructor(basemap: string, mapViewEl: ElementRef) {
this.basemap = basemap;
this.mapViewEl = mapViewEl;
}
//Some code called from other files...
initMap() {
this.map = new this.EsriMap({
basemap: this.basemap
});
this.mapView = new this.EsriMapView({
container: this.mapViewEl.nativeElement,
map: this.map,
center: [8.8950825, 53.0552952],
zoom: 15
});
this.mapView.ui.add("line-button", "top-left");
}
Я ожидал, что этот код добавит кнопку строки в контейнер mapView, как и ожидалось в arcGIS.Я получил эту ошибку:
Ошибка: Uncaught (в обещании): Ошибка типа: Аргумент 1 Node.appendChild не является объектом.