是否有類似於$ 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沒有服務! $ mdMedia的等價物是什麼
- 2. Imprlementing Angular 2服務
- 3. Angular 2 http服務
- 4. Angular 2:服務注入服務,Provider
- 5. Angular 2 - 在服務路由
- 6. Angular 2 Rest服務請求
- 7. Angular 2 HTTP服務(Youtube API)
- 8. Angular 2 HTTP服務問題
- 9. Angular 2的郵政服務
- 10. Angular 2同步Http服務
- 11. 配置Angular 2 HTTP服務
- 12. Angular 2:多個HTTP服務
- 13. angular 2 xampp服務器
- 14. Angular 2 Universal - 服務器端渲染
- 15. 單元測試Angular 2服務
- 16. Angular 2更新服務更新UI
- 17. Angular 2服務器端重定向
- 18. Angular 2 - 取消服務呼叫
- 19. Observable與Angular 2服務中的變量
- 20. Angular 2 CORS使用郵件服務(mialgun)
- 21. Angular 2 - 鏈接Web服務調用
- 22. Angular 2使用服務更新組件
- 23. Angular 2服務獲取返回undefined
- 24. 測試返回Promise的Angular 2服務
- 25. Angular 2等到服務結果出來
- 26. Angular 2 - 在課堂上運行服務
- 27. Angular 2字體到服務器
- 28. Angular 2與聚合物失敗服務
- 29. Angular 2 Observable http服務錯誤處理
- 30. Angular 2服務訂閱兩次