Я хочу поделиться своим основным объектом между компонентами в проекте Angular.
Мой основной компонент - это компонент карты.
@Component({
selector: 'app-map',
template: `<div id="map"></div>`
})
export class MapComponent {
map: Map;
constructor() {
this.map = new Map({});
}
}
Объект map
из MapComponent
будет использоваться в других компонентах.
MapControlComponent
добавит объект в map
объект. MapControlComponent
не имеет представления.
@Component({
selector: 'app-map-control',
template: ``
})
export class MapControlComponent {
constructor() {
var control = new MapControl();
// Following object will be add in map object in MapComponent.
// map.controls.add(control);
}
}
и использование будет таким:
<app-map>
<app-map-control></app-map-control>
<app-map>
Но также я должен использовать несколько раз следующим образом.
<div id="container">
<div id="map1">
<app-map>
<app-map-control></app-map-control>
<app-map>
</div>
<div id="map2">
<app-map>
<app-map-control></app-map-control>
<app-map>
</div>
</div>
(Естественно, все объекты карты отличаются от других.)
Но я не мог решить, как поделиться объектом карты в MapComponent.
У меня также могут быть компоненты, отличные от MapControlComponent, которые используют объект карты.