iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 17
0
Software Development

三十天利用Angular與.net Core開發實戰一波系列 第 17

Day 17 AngulatTri 實作 - YouBike 場站透過 Google Map 動態標示 2/2

  • 分享至 

  • xImage
  •  

前一天我們撰寫了

透過畫面自己選擇經緯度來標記Google map

今天來學習一下如何將Google Map Component嵌入其他component並透過@input@output來傳遞參數

首先先在Google Map Component中
多加上這幾個參數

  @Input() width: string; //地圖寬度
  @Input() latit: string; //緯度
  @Input() longit: string;//經度
  @Output() childEvent = new EventEmitter<any>(); 
  // 提供Output裝飾器,讓該事件成為父親模板的事件

接著在ngOnInit()多一點新增

 ngOnInit() {
    this.width = (this.width == null) ? '80%' : this.width; 
    this.latit = (this.latit == null) ? '23.58' : this.latit;
    this.longit = (this.longit == null) ? '120.58' : this.longit;
    this.gmap.latit = this.latit;
    this.gmap.longit = this.longit;
    this.gmap.language = 'zh-TW'; 
    this.gmap.scale = '12';
    this.gmap.mode = '';
    this.getGmapURL();
  }

為了讓Google Map這個子component可以回傳值Output
我們定義一個onChildClick()

  onChildClick() {
  const nowTime = new Date();
  this.childEvent.emit(nowTime);
}

完成了以後,立馬到父component進行呼叫

<div>
<mat-form-field>
  <mat-select [(ngModel)]="selectedData" (ngModelChange)="getUikeDataStation(selectedData)" placeholder="請選擇一個場站">
    <mat-option *ngFor="let u of uBike " [value]="u">
      {{u.sno}} {{u.sna}}
    </mat-option>
  </mat-select>
</mat-form-field>
</div>
時間 => <span style='color:red'> {{ strFormChild | date : 'yyyy-MM-dd hh:mm:ss' }}</span>
<div *ngFor="
  let i of uBikeOneSelected">
{{i.sna}}-
總停車格:{{i.tot}}
可借車位數:{{i.sbi}}
資料更新時間:{{i.mday}}
<app-tri002 [width]="'80%'" [latit]="i.lat" [longit]='i.lng' (childEvent)="onListenChild($event);"></app-tri002>
</div>

上一篇
Day 16 AngulatTri實作-YouBike場站透過Google Map動態標示1/2
下一篇
Day 18 AngularTri 專案架構配置-主控版面
系列文
三十天利用Angular與.net Core開發實戰一波32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言