2017-06-10 19 views
0

をクリックした後を除いて表示されていないDIV私は、ホームページにGoogleマップを持っているし、地図上に表示される情報ウィンドウを閉じるとき、私は別のページへのルートにユーザーをしようとしている:角度2+ ngIfページ

// Google map info window code snippet from a @Directive 
 
infowindow.addListener('closeclick',() => { 
 
    this.router.navigate(['/users', user.id]); 
 
}); 
 

 
// Component code 
 
ngOnInit() { 
 
    this.user$ = this.route.params.switchMap((params: Params) => this.service.getUser(params['id'])); 
 
} 
 

 
// UserService 
 
getUser(id: String): Observable <User> { 
 
    return this.apollo.watchQuery <GetUserQueryResult> ({ 
 
    query: GetUserQuery, 
 
    variables: { 
 
     id: id 
 
    } 
 
    }).map(({ 
 
    data 
 
    }) => data.User); 
 
}
<div *ngIf="user$ | async as user" class="container"> 
 
    <p>user.name</p> 
 
</div>

問題は、私は、ユーザーのページに到達したとき、div要素が実際に一度ページをクリックしたときを除いて表示されることは決してありませんということです。どうしましたか?角度ゾーン内のハンドラのコードを実行

+0

も参照してください? –

+0

私は、特に角度地図を示すために必要なパッケージを見つけることができません:https://github.com/SebastianM/angular-google-maps – Sammy

+0

あなたのコードはngZone.runを必要としているようです – yurzui

答えて

0

はあなたに

import { NgZone } from '@angular/core'; 

... 
constructor(private zone: NgZone) {} 

infowindow.addListener('closeclick',() => { 
    this.zone.run(() => this.router.navigate(['/users', user.id])); 
}); 

を助けるべきであるあなたがplunkerを作成することができます

+0

それはもちろん、完璧に働いた。どうもありがとうございました。以前は他のリンクを見ていなかったことを申し訳ありません。 – Sammy