Angular ionic2点击vs点击

Angular ionic2点击vs点击,angular,ionic2,click,ionic3,tap,Angular,Ionic2,Click,Ionic3,Tap,我从angular2和ionic2开始 在ionic2中,我有一个按钮,可以调用组件的方法。像这样: <button secondary clear large> </button> (轻触) 有什么区别吗?您可以在中查看关于(点击) Thx.如果制作移动应用程序,(点击)可能会更好。这是因为当使用(单击)时,即使不小心轻敲,操作也会执行。如果用户按住(轻触),则不会执行。如果您想拥有需要长时间单击的按钮,可以使用(按) 请注意,在某些爱奥尼亚版本中,(单击)事件

我从angular2和ionic2开始

在ionic2中,我有一个按钮,可以调用组件的方法。像这样:

<button secondary clear large>
</button>
(轻触)


有什么区别吗?您可以在中查看关于
(点击)


Thx.

如果制作移动应用程序,
(点击)
可能会更好。这是因为当使用
(单击)
时,即使不小心轻敲,操作也会执行。如果用户按住
(轻触)
,则不会执行。如果您想拥有需要长时间单击的按钮,可以使用
(按)


请注意,在某些爱奥尼亚版本中,
(单击)
事件不会在iOS上执行。因此,使用
(点击)
将是推荐的解决方案。

我认为这实际上取决于您希望用户体验的“本地风格”

(轻触)
事件来自。如果查看链接,您将看到触发tap事件必须满足的要求

需要注意的第一个要求是时间选项,默认值为250ms。这意味着,如果压力大于250ms,则不会触发事件

需要注意的第二个要求是阈值选项,默认值为2(不确定这是什么单位,可能是像素)。这意味着如果压力机的移动大于2,事件将不会触发。例如,在屏幕上方从左向右移动手指,然后在此移动过程中按下该元素。根据移动速度,事件可能不会触发

然而

在我刚才指出的两种情况下,
(单击)
事件仍将触发,前提是释放压力机时,它仍在目标元素内


在开始时,我之所以说“这真的取决于”是基于其他应用程序如何处理这些场景(每个应用程序可能会有所不同,也可能根据用例的结果有所不同)

据我所知,我选中的Android应用程序上的按钮(具有视觉效果的按钮,如导航或弹出消息)的工作方式与Angular提供的
(单击)
事件相同

我无法评论IOS应用程序是如何使用我没有测试过的相同原理工作的

我并不是说在每个用例中都应该使用
(点击)
,而不是
(点击)
,但试着考虑其他本地应用程序的行为,并从中决定哪一个最合适。

我在iOS中遇到了
(点击)
问题,但在Android中它工作正常。在iOS中,当我更改应用程序语言时,在单击链接之后,它什么也没做。我认为这与离子点击阻滞剂有关


但在我将
(点击)
更改为
(点击)
后,语言更改链接立即生效。当语言选择没有做任何事情(甚至在等待了一段时间之后)时,我也遇到了问题,并将语言选择从
(点击)
更改为
(点击)
,现在它工作得很好。

iOS通常会出现点击事件(如果您在浏览器控制台中的响应移动设备中进行测试,则会出现网络事件)

所以通常情况下,用户必须单击两次才能执行操作

我发现这是因为如果你在做移动开发(chrome控制台甚至iOS模拟器),你将不得不使用(点击)事件

这个问题很难知道,因为它的不规则行为,当您使用(单击)时,通常不可单击的东西,就会出现这个问题

因此,如果您在这些元素上使用(点击)并(单击),一切都会正常工作


我的建议是为了更好地利用两者

我想补充一点,您可以对元素使用(点击)事件,如
按钮,一个
,但对于非按钮元素,属性
tappable
是有用的:

如果您想在非按钮元素上立即单击,则必须向该元素添加
tappable
指令,否则延迟为300ms。例如:

<div tappable (click)="someHandler()">Click me</div>
点击我

除了投票最多的问题之外,我想指出,
(点击)
在用作参数时处理
$event
的方式不同。 如果我没记错的话,当使用
(点击)
时,
$event
中的
target
属性将是您实际点击的元素,而不是具有
(点击)
事件绑定的元素。
如果您的元素中有子元素,并且绑定了
(点击)

因为Ionic 2构建在Angular 2之上,那么这将是相关的。所以在按钮内部,您应该使用(单击)Hammer.js库的event.js?离子手势是的。在文档的其他beta版本中,他们曾经提到过这一点,但在最新版本中似乎没有提到。您已经强调了我需要在应用程序的某些地方使用tap的确切原因。如果您使用
(单击)
(按)
,则这两个选项都会在“按”时执行。如果您使用
(轻触)
(按)
这不是以前听说过的情况。stopPropagation()@JoeriShoeby-在要删除的表格单元格上尝试
event.stopPropagation()
,然后单击以显示详细信息。使用
click()
时,它会显示详细信息,而
stopPropagation()
没有任何效果。改为
tap()
解决了此问题。此处相同。某些爱奥尼亚版本似乎在iOS上激活
(单击)
时出现问题。您是否尝试过在iOS上使用爱奥尼亚的WKWebview插件?ionic iOS应用程序在事件和性能方面与此应用程序相比工作得更好:那么这是否意味着当我有一个带有点击事件的
,并且我点击一个子
,我可以从事件中看到点击了哪个项目,而不必复制粘贴点击功能?@Ivaro18,
$event
变量将保存该元素
<button secondary clear large (tap)="pause()">
</button>
<div tappable (click)="someHandler()">Click me</div>