$ mdMediaに似たAngular 2サービスはありますか?ウィンドウのサイズに基づいてボタンを表示または非表示にする必要があります(ウィンドウが画面と同じサイズの場合は非表示にします)
0
A
答えて
1
これはおそらく役に立ちます。
resize.service.js
import {Injectable} from '@angular/core';
import {BehaviorSubject} from 'rxjs/BehaviorSubject';
@Injectable()
export class ResizeService {
public window = new BehaviorSubject(null);
constructor() {
window.onresize = (e) => {
this.window.next(e.target);
};
}
}
app.component.ts
import {Component} from '@angular/core';
import {ResizeService} from './resize/resize.service';
@Component({
moduleId: module.id,
selector: 'my-app',
templateUrl: 'app.component.html',
providers: [ResizeService]
})
export class AppComponent {
constructor(private resizeService: ResizeService) {
resizeService.window.subscribe((val) => {
if (val) {
console.log(val.innerWidth);
}
});
};
}
サービスはBehaviourSubjectを使用しています。その内容についてはSee this answerを参照してください。また、https://xgrommx.github.io/rx-book/content/subjects/behavior_subject/index.html
コンポーネントはBehaviourSubject(ウィンドウ)にサブスクライブし、画面サイズが変更されたときに更新された値を取得します。
1
あなたは使用することができますし、フレックスレイアウトを使用する必要があります。
公式https://github.com/angular/flex-layout/wiki/Adaptive-Layouts#core-directives--responsive-features
import {ObservableMedia} from '@angular/flex-layout';
@Component({
selector : 'my-mobile-component',
template : `
<div *ngIf="media.isActive('xs')">
This content is only shown on Mobile devices
</div>
<footer>
Current state: {{ }}
</footer>
`
})
export class MyMobileComponent {
public state = '';
constructor(public media:ObservableMedia) {
media.asObservable()
.subscribe((change:MediaChange) => {
this.state = change ? `'${change.mqAlias}' = (${change.mediaQuery})` : ""
});
}
}
関連する問題
- 1. 角2 - サービスのサービス
- 2. 角2は、CanActivateサービス
- 3. 角度2サービスのクリーンアップコード
- 4. 角2:サービスとレビュックスの差
- 5. 角度2注入サービス
- 6. 角2:複数のHTTPサービス
- 7. 角度2のサービス変数
- 8. 角2モーダルウィンドウ/ダイアログviaサービス
- 9. 角度2サービスは、私は、角2を学んでいる
- 10. 角度2:サービスは私の角度2のアプリで
- 11. 角2サービスの初期化ロジック
- 12. 角度2 HTTPサービスの同期
- 13. 角2 - サービスにプロバイダを含める
- 14. 角2のデータをサービスに保存
- 15. 角度2サービスのノード鍛造インポート
- 16. 基本角2 Typescriptサービスの設定
- 17. 角度2とサービスによるユニットテスト
- 18. 角2サービスのシングルトンスコープの問題
- 19. 角2のHTTPサービスの問題
- 20. 通知サービスの角2の変更コンポーネント
- 21. 角2:遅延ロードモジュールのサービスの範囲
- 22. サービスへの角2パスの値
- 23. 角2 RC.5シングルトングローバル共有サービス
- 24. 角2のHTTPサービスはシングルトンですか?
- 25. 角2:サービス変数とビューの更新
- 26. 角2:別のサービスにサービスを注入する。 (NOプロバイダエラーなし)
- 27. 角度2のサービスを2回購読しました
- 28. MetronicApp角度サービス
- 29. 角度AJAXサービス
- 30. 角度2 - 注射用サービスは、別の注射サービスを必要とする -