2017-07-27 7 views
4

私は応答性の高いナビゲーションバーを作成しようとしており、メディアクエリを使用したくないので、画面解像度を基準として*ngIFを使用するつもりです。 しかし、角度4の画面解像度の検出方法やドキュメントが見つからないため、問題が発生しています。 JavaScriptメソッドも試しましたが、サポートされていません。角度4を使って画面解像度を検出する

私もfollowingを試してみました:

イオン

に使用された

constructor(platform: Platform) { 
    platform.ready().then((readySource) => { 
     console.log('Width: ' + platform.width()); 
     console.log('Height: ' + platform.height()); 
    }); 
} 

とscreen.availHeight

しかし、まだありません成功。

+0

「プラットフォーム」とは何ですか?これはイオニックについてですか? –

+0

@GünterZöchbauerプラットフォームは角度があり、私が試したコードについて言及したかっただけです。 – Ronit

+0

['Platform'](https://ionicframework.com/docs/api/platform/Platform)はイオンサービスです。だから私はそれがイオンプロジェクトだと思っていますか? – robbannn

答えて

21

を役に立てば幸い使用することができます。

@HostListener('window:resize', ['$event']) 
onResize(event) { 
    this.innerWidth = window.innerWidth; 
} 
+0

それは完璧に動作します! @エドゥアルド・バルガスに感謝します。 – Ronit

1

あなたはこの https://github.com/ManuCutillas/ng2-responsive それはあなたがそれがリサイズに更新を維持したい場合のinit

public innerWidth: any; 
ngOnInit() { 
    this.innerWidth = window.innerWidth; 
} 

にそれを得るために:-)

2

Platformwidth()height()のドキュメントでは、これらのメソッドそれぞれwindow.innerWidthwindow.innerHeightを使用します。しかし、ディメンションがキャッシュされた値であるため、メソッドの使用が優先され、複数の高価なDOM読み込みの可能性が減ります。

import { Platform } from 'ionic-angular'; 

... 
private width:number; 
private height:number; 

constructor(private platform: Platform){ 
    platform.ready().then(() => { 
     this.width = platform.width(); 
     this.height = platform.height(); 
    }); 
} 
+0

他の回答がうまくいけば、これはもっと良い解決策だと思います – brijmcq