Как добавить кнопки в arcGIS mapView с ElementRef в качестве контейнера - PullRequest
0 голосов
/ 20 сентября 2019

Я настраиваю небольшое веб-приложение, используя 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 не является объектом.

...