首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular 2使用ngUI贴图

Angular 2使用ngUI贴图
EN

Stack Overflow用户
提问于 2017-04-05 14:13:53
回答 2查看 2.1K关注 0票数 0

下面是我尝试过的一些方法

这是我的代码:

代码语言:javascript
复制
<ngui-map center="Brampton, Canada">
    <marker position="Brampton, Canada" 
      draggable="true" 
      (click)="clicked($event)">
    </marker>
    <info-window id="iw">
      lat: [[lat]], lng: [[lng]]
    </info-window>
  </ngui-map>

import { Component } from '@angular/core';
import { NguiMapComponent } from '@ngui/map';
  @Component({
    template: require('./app.html')
  })
  class AppCompoment {
    clicked(event) {
      let marker = event.target;
      marker.ng2MapComponent.openInfoWindow('iw', marker, {
        lat: marker.getPosition().lat(), 
        lng: marker.getPosition().lng(),
      });
    }

我得到了这个错误:

代码语言:javascript
复制
Cannot read property 'openInfoWindow' of undefined

我如何解决这个问题。

请多多指教。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2017-04-05 15:01:25

尝试使用@ViewChild访问子组件。

代码语言:javascript
复制
<ngui-map center="Brampton, Canada">
    <marker #mrker position="Brampton, Canada" 
      draggable="true" 
      (click)="clicked($event)"><!-- set id -->
    </marker>
    <info-window id="iw">
      lat: [[lat]], lng: [[lng]]
    </info-window>
  </ngui-map>

组件类:

代码语言:javascript
复制
import { Component,ViewChild } from '@angular/core';
import { NguiMapComponent } from '@ngui/map';
  @Component({
    template: require('./app.html')
  })
  class AppCompoment {
   @ViewChild(NguiMapComponent)
   ngMap:NguiMapComponent;

   //@ViewChild('mrker')
   //marker:any;

    clicked(event) {
      let marker = event.target;
      this.ngMap.openInfoWindow('iw', marker, {
        lat: marker.getPosition().lat(), 
        lng: marker.getPosition().lng(),
      });
    }
票数 0
EN

Stack Overflow用户

发布于 2017-09-16 22:46:33

代码语言:javascript
复制
<ngui-map zoom="14" [center]="center"  (mapClick)="onMapClick($event)">
  <marker *ngFor="let pos of positions"
          [position]="pos" (click)="clickedMarker($event)" ></marker>
  <info-window id="iw">
    <div *ngIf="infoposition">

      lat: {{ position.coords.latitude }}, lng: {{ position.coords.longitude }}
    </div>

  </info-window>


</ngui-map>




 clickedMarker(event:any) {
let marker = event.target;
let lat = marker.getPosition().lat();
let lng= marker.getPosition().lng();
marker.nguiMapComponent.openInfoWindow('iw', marker);

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43223185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档