考虑一下您在网页中间有地图的情况,以及要显示地图显示的中心坐标(+缩放级别)的页脚中的某个地方。
@Component({
selector: 'esri-map-view',
template: '<div></div>',
providers: [SimpleMapService]
})
export class MapComponent{
@Output() viewCreated = new EventEmitter();
view: any = null;
constructor(
private _mapService: SimpleMapService,
private elRef: ElementRef
) {}
ngOnInit() {
this.view = new MapView({
container: this.elRef.nativeElement.firstChild,
map: this._mapService.map,
zoom: 10,
center: [19.937, 50.061]
})
this.view.then(function(view) {
this.viewCreated.next(view);
}.bind(this));
this.view.watch('zoom', function(newVal, oldVal, propertyName) {
}.bind(this));
}
}
问题是:坐标/缩放级别必须显示在页脚中,而不是在此组件的<div>
模板之前/之内/之后。
在AngularJS 1中,我会将地图的控制器附加到body标签,这样我就可以从页脚访问地图范围(以及center
变量),但我看不出这是怎么回事在Angular2中完成。