Ember-Leaflet ist ein sehr beliebtes Add-on aus dem EmberJS-Ökosystem, das viel Flexibilität bietet.
Aber was ist, wenn ich die Funktionalität erweitern möchte, damit es noch mehr kann? Und was ist, wenn ich es als neu generierte Komponente direkt aus den Ebenen der
Zuerst benötigen wir unsere neue Komponente. Der Einfachheit halber erweitert diese Komponente lediglich eine vorhandene Ebenenkomponente des Add-Ons. Lassen Sie uns die Markierungskomponente verwenden und sie so gestalten, dass sie das Standortargument einfach ignoriert und einen gefälschten, fest codierten Wert festlegt:
// 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); } }
Danach müssen wir die Komponente beim Ember-Leaflet-Service registrieren:
// 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, };
Und jetzt können wir es verwenden:
import LeafletMap from 'ember-leaflet/components/leaflet-map'; <template> <LeafletMap @lat={{46.6}} @lng={{7.8}} @zoom={{15}} as |layers| > <layers.fake-marker @lat={{999.99}} @lng={{0}} /> </LeafletMap> </template>
Sie können diese Technik auch auf der offiziellen Ember-Broschüren-Dokumentationsseite nachlesen.
Das obige ist der detaillierte Inhalt vonFügen Sie der Embe-Broschüre eine benutzerdefinierte Ebene hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!