当使用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. 点击更新API - Angular 2
- 6. Angular 2属性和* ngIf
- 7. Angular 2 Conditional Loop with * ngIf
- 8. Angular 2:将ngClass添加到基于单击事件的元素
- 9. Angular 2动态组件单击事件
- 10. Angular 2中的Touchmove事件
- 11. 使用Angular 2编辑点击功能
- 12. Angular 2下载带验证的.CSV文件点击事件
- 13. 如何将事件点击发送到工厂Angular js?
- 14. Angular 2右键单击事件?
- 15. Angular 2单击事件不起作用
- 16. Angular 2将点击事件传递给可重用的通用组件
- 17. 我如何将一个点击事件定位到Angular 2中的另一个组件
- 18. 从角度2中的点击事件将对象加载到窗体中
- 19. Chart.js&Angular 2 - ng2-charts自定义点击事件
- 20. Angular 2 - 包装组件儿童
- 21. Angular 2 innerHTML(点击)绑定
- 22. 当ngIf中的条件变为Angular 2时触发函数
- 23. Angular 2如何避免模板中的许多条件(ngIf)?
- 24. Angular 2包装项目
- 25. Angular 2/4 HostListener没有点击正确的事件?
- 26. Angular 2 - 当点击父元素时防止点击孩子?
- 27. 处理点击并点击Angular 2中的外侧事件执行优先级的最佳方法是什么?
- 28. 如何在ngDraggable angular js中停止点击事件?
- 29. 在angular-tree-widget中的子节点上添加双击事件
- 30. Angular如何检测Kendo点击事件?
第一种方法也是我的第一种方法,只是看到在Angular 2中是否有其他方法 – FoffySkrimshaw