當使用Angular 2的屏幕尺寸小於768像素寬度時,僅使用(單擊)的最佳方式是什麼?我有 (click)=「isClassVisible = !isClassVisible;」 但想把它放在類似 * ngIf =「screenWidth < 769 {(click)=」isClassVisible =!isClassVisible;「}」。 不知道如何在Angular 2中做到這一點。我知道這是無效的。基本上,具有輔助下拉菜單的導航項應當在桌面上懸停時展開,並在鼠標離開時收縮。在移動設備上,我希望他們點擊導航條打開,但如果再次點擊,也可以關閉它。我可以做到這一點,但我無法弄清楚如何在響應模式下使點擊事件可見。在Angular 2中將點擊事件包裝到* ngIf中
0
A
回答
0
你真的有兩種方法:
1)創建2個獨立的元素,一個與click事件和一個沒有。然後爲每個元素添加特定的媒體查詢啓用類,其中一個隱藏,當屏幕爲< 768px,另一個隱藏時屏幕> 768px
2)onclick事件在控制器中調用一個函數而不是直接在ng-click表達式中設置值。在你的控制器中的這個函數中,你可以使用諸如(window.innerWidth)之類的東西來檢查窗口對象的屏幕大小。這有時會變得棘手,所以你必須做很多測試。
我會誠實地使用第一種方法,即使技術上在標記中重複它只是更容易遵循。
0
@Component({
selector: 'clicable'
, template: `
<div [clickIf]="clickIf" (value)="val = $event">click on me</div>
Width: <input [(ngModel)]="width">
value:
<div>{{val}}</div>
`
})
export class ClickableComponent {
clickIf
width = 200;
constructor() {
this.clickIf = obs => obs.filter(value => this.width > 100);
}
setWidth(width: number) {
this.width = +width;
}
}
let id = 0;
@Directive({
selector: '[clickIf]'
})
export class ClickIfDirective {
@Input() clickIf;
@Output() value = new EventEmitter();
@HostListener('click') click() {
Observable.of(1).let(this.clickIf).subscribe(val => this.value.next(id++));
}
}
相關問題
- 1. 點擊事件hidde 2組件Angular 4
- 2. Angular 2在ngIf執行後將焦點集中在ul li上
- 3. Angular 2 - 點擊事件沒有觸發
- 4. Ionic 2/Angular 2中的Mapbox標記點擊事件
- 5. Angular 2 ngFor和ngIf
- 6. 點擊更新API - Angular 2
- 7. Angular 4 - 更改點擊事件按鈕
- 8. 在點擊事件中將新的JSON數據加載到Angular中
- 9. Angular 2 ngIf和ngFor組合
- 10. Angular 2 Conditional Loop with * ngIf
- 11. Angular 2屬性和* ngIf
- 12. 將Redux安裝到Angular 2中
- 13. 如何在一個函數中包裝點擊事件?
- 14. Angular 2-使用* ngIf有多個條件
- 15. Angular 2:將ngClass添加到基於單擊事件的元素
- 16. Angular JS。需要在點擊事件
- 17. Angular 2中的Touchmove事件
- 18. 使用Angular 2編輯點擊功能
- 19. Angular 2動態組件單擊事件
- 20. Angular2點擊和ngIF
- 21. 如何將點擊事件放入點擊事件jquery中?
- 22. Angular 2下載帶驗證的.CSV文件點擊事件
- 23. Angular 2右鍵單擊事件?
- 24. 如何將事件點擊發送到工廠Angular js?
- 25. Angular 2單擊事件不起作用
- 26. Angular 2將點擊事件傳遞給可重用的通用組件
- 27. 當ngIf中的條件變爲Angular 2時觸發函數
- 28. Angular 2如何避免模板中的許多條件(ngIf)?
- 29. 在Tkinter中點擊事件
- 30. Angular 2 - 包裝組件兒童
第一種方法也是我的第一種方法,只是看到在Angular 2中是否有其他方法 – FoffySkrimshaw