コールバック関数内で配列オブジェクトを更新する必要があります。次の行を使用しましたが、値は角度変数ではなくコールバックループのスコープに設定されます。ビューが更新されていません。(deviceval)値は、コールバック内で印刷する場合に変更されますが、値の外はまだ古い値です。コールバック関数内で角度2スコープを取得できません
export class DashboardComponent implements OnInit {
hideTable: boolean = true;
public deviceVal:any;
constructor(private ref: ChangeDetectorRef) {}
ngOnInit() {
this.deviceVal = deviceData;
console.log(this.deviceVal);
var container = $('.map-canvas');
var options = {
center: new google.maps.LatLng(41.676258, -99.683199),
zoom: 4,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
gmap = new google.maps.Map(container[0], options);
this.drawChart(deviceData);
this.plotMarkers();
}
plotMarkers(){
$.each(deviceData, function(key, val) {
var controller=this;
var marker = new google.maps.Marker({
position: new google.maps.LatLng(parseInt(val.lat), parseInt(val.lon)),
map: gmap,
});
google.maps.event.addListener(marker, 'click', function() {
this.deviceVal = val;
});
markerCache.push(marker);
})
}
}
私はあなたが角検出のためにangleを知らせるために角度のないコールバックを使用している場合はどこでも '$ scope。$ apply()'を使うべきだと思いますcle。 – Abdel
私はそれが唯一の問題だとは思わない、あなたのポインタも間違っています。コールバックの内部に 'this'リファレンス(クラスの)を割り当てています。私はそれがコールバックの上に置かれて正しい '' 'this.deviceVal''を指していると思うと思います。 – Abdel
@Abdel角2に$スコープがありません –