Динамические данные в Angular Snackbar из Openlayers API - PullRequest
0 голосов
/ 17 января 2019

Для моего приложения я использую: Угловой 7,2 Открывающие слои 5.3

То, чего я пытаюсь достичь, это когда вы наводите карту, координаты положения вашей мыши будут отображаться в снэк-баре.

Я знаю, что снэк-бар не предназначен для динамических данных, но я подумал, что здесь будет полезно.

Мой код:

import { Component, OnInit } from '@angular/core';

import { mapService } from '../services/map.service'
import { MatSnackBar } from '@angular/material';

@Component({
  selector: 'app-map',
  templateUrl: './map.component.html',
  styleUrls: ['./map.component.scss']
})
export class MapComponent implements OnInit {

  mousePosition: any = "Hover the map"

  constructor(
    public mapService: mapService,
    public snackBar: MatSnackBar
  ) { }

  ngOnInit() {
    this.mapService.initMap()
  }

  getMousePosition(){
    this.snackBar.openFromComponent(snackbarComponent)
  }

}


@Component({
  selector: 'snackbar',
  template: `{{ mousePosition }}`,
  styles: [``]
})
export class snackbarComponent implements OnInit {

  mousePosition: any

  constructor(
    private mapService: mapService
  ) { }

  ngOnInit(): void {
    this.mapService.map.on('pointermove', function(evt) {
      console.log(evt.coordinate)
      this.mousePosition = evt.coordinate
    }.bind(this))
   }
}

Я вырезал ненужный код, так как думал, что он будет бесполезен,

Это результат, который я хочу, но затем постоянно менять положение мыши

Как сделать так, чтобы закусочная обновлялась без закрытия? Код Openlayers работает, но не в снэк-баре, потому что (я думаю), снэк-бар открывается только один раз и вставляет данные, которые он получает в этот момент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...