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