ember-leaflet 是 EmberJS 生態系統中非常流行的插件,具有很大的靈活性。
但是如果我想擴展它的功能以便它可以做更多事情怎麼辦?如果我希望它作為直接從
首先我們需要新元件。為了簡單起見,該元件將僅從插件擴展現有的層組件。讓我們使用標記元件並使其忽略位置參數並設定一個假的硬編碼值:
// app/components/fake-marker-layer.gts import MarkerLayer from 'ember-leaflet/components/marker-layer'; export default class FakeMarkerLayer extends MarkerLayer { get location() { return this.L.latLng(46.68, 7.85); } }
此後,我們需要使用 ember-leaflet 服務註冊元件:
// app/instance-initializers/leaflet.ts import FakeMarkerLayer from '../components/fake-marker-layer'; import type Owner from '@ember/owner'; export function initialize(owner: Owner) { const emberLeafletService = owner.lookup('service:ember-leaflet'); if (emberLeafletService) { emberLeafletService.registerComponent('fake-marker-layer', { as: 'fake-marker', component: FakeMarkerLayer, }); } } export default { initialize, };
現在我們可以使用它了:
import LeafletMap from 'ember-leaflet/components/leaflet-map';
您也可以在官方 ember-leaflet 文件頁面上閱讀此技術。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3