Try this one:
Add itemizedOverlay class:
public class AndroidGoogleMapsActivity extends MapActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Displaying Zooming controls
MapView mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
MapController mc = mapView.getController();
double lat = Double.parseDouble("48.85827758964043");
double lon = Double.parseDouble("2.294543981552124");
GeoPoint geoPoint = new GeoPoint((int)(lat * 1E6), (int)(lon * 1E6));
mc.animateTo(geoPoint);
mc.setZoom(15);
mapView.invalidate();
/**
* Placing Marker
* */
List<Overlay> mapOverlays = mapView.getOverlays();
Drawable drawable = this.getResources().getDrawable(R.drawable.mark_red);
AddItemizedOverlay itemizedOverlay =
new AddItemizedOverlay(drawable, this);
OverlayItem overlayitem = new OverlayItem(geoPoint, "Hello", "Sample Overlay item");
itemizedOverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedOverlay);
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
}
Ваш шаблон:
<div *ngFor="let billingItem of billings" class="LG_invoice-item" #billing (click)="setCurrentBilling(billingItem)" >
<div class="LG_form-title" (click)="billing.value = !billing.value">
{{billingItem.month}} {{billingItem.years}}
</div>
<app-billing *ngIf="billing.value" ></app-billing>
</div>
Итак, у вас есть родительский div
и вложенный, оба с прослушивателем щелчков.
Первый, который должен быть выполнен, является внутренним:
(click)="billing.value = !billing.value"
, который делает шаблон для повторного рендеринга, показывая теперь новый элемент:
<app-billing *ngIf="billing.value" ></app-billing>
Так что ngOnInit этого элемента выполняется:
ngOnInit() {
this.billingsService.log();
setTimeout(() => {
this.billingsService.log();
}, 0);
//console.log('currentelem: ', );
}
Здесь вы еще не установили current
. И затем, после того, как этот первый цикл завершен, в действие вступает другой обработчик щелчков:
(click)="setCurrentBilling(billingItem)"
И после этого будет разрешен setTimeout
из первого click
.
<div *ngFor="let billingItem of billings" class="LG_invoice-item" #billing
(click)="billing.value = !billing.value;setCurrentBilling(billingItem)" >
<div class="LG_form-title">
{{billingItem.month}} {{billingItem.years}}
</div>
<app-billing *ngIf="billing.value" ></app-billing>
</div>