Ember.js 防止代码在操作中多次运行

Ember.js 防止代码在操作中多次运行,ember.js,Ember.js,我有一些代码在运行中,如果用户只单击按钮一次,那么这些代码就可以正常工作。但是,如果用户快速单击按钮多次,那么这些代码就会运行多次,并产生奇怪的问题。有人知道如何防止这种情况发生吗?将其添加到按钮中 onclick="this.disabled=true;" 例如: <button onclick="this.disabled=true;">Click</button> 点击 单击按钮时,onclick会立即运行并禁用该按钮以防止再次单击。将其添加到按钮中 o

我有一些代码在运行中,如果用户只单击按钮一次,那么这些代码就可以正常工作。但是,如果用户快速单击按钮多次,那么这些代码就会运行多次,并产生奇怪的问题。有人知道如何防止这种情况发生吗?

将其添加到按钮中

 onclick="this.disabled=true;"
例如:

 <button onclick="this.disabled=true;">Click</button>
点击

单击按钮时,onclick会立即运行并禁用该按钮以防止再次单击。

将其添加到按钮中

 onclick="this.disabled=true;"
例如:

 <button onclick="this.disabled=true;">Click</button>
点击

当您单击按钮时,onclick会立即运行并禁用该按钮以防止再次单击。

如果您想设置
/
禁用属性,如果您想/可以向您的余烬应用程序添加库,将大大简化上述本机余烬示例。他们有一个指南,可以使用
ember并发性

将上面的示例重构为更可读的示例。如果您想设置
/
禁用属性,如果您想/可以向您的ember应用程序添加库,将大大简化上面的本机ember示例。他们有一个指南,可以使用
ember concurrency

将上述示例重构为更可读的示例。第一个解决方案是通过设置按钮的
disabled
属性在单击后禁用按钮

虽然设置按钮的
禁用
属性可以完全解决问题;在执行某些异步操作时,将重新启用逻辑扩展到代码是不好的

此外,当您有其他条件禁用按钮时,重新启用按钮可能会更复杂。(例如,如果表单上的某个字段具有无效值,则可能需要再次禁用该按钮。)

我们更喜欢插件来满足这些需求。它的
任务
结构为大多数情况提供了更可读的代码。

第一种解决方案是通过设置按钮的
disabled
属性,在单击后禁用按钮

虽然设置按钮的
禁用
属性可以完全解决问题;在执行某些异步操作时,将重新启用逻辑扩展到代码是不好的

此外,当您有其他条件禁用按钮时,重新启用按钮可能会更复杂。(例如,如果表单上的某个字段具有无效值,则可能需要再次禁用该按钮。)


我们更喜欢插件来满足这些需求。它的
任务
结构为大多数情况提供了更可读的代码。

我尝试使用ember并发,但似乎无法解决问题。基本上,我有一个基于计数器的逻辑,当你点击一个按钮时,它会使计数器增加1,而实际上,如果你点击得很快,它会以2结束,它会弄乱我的逻辑。所以我试着锁定变量,我猜没有数学,你点击它多少次会增加1倍那么
禁用
对你有帮助吗?如果你提供twiddle,我可以看得更远。不,我这是我的第一个解决方案,我仍然能够复制它。我尝试使用ember并发,但似乎无法解决问题。基本上,我有一个基于计数器的逻辑,当你点击一个按钮时,它会使计数器增加1,而实际上,如果你点击得很快,它会以2结束,它会弄乱我的逻辑。所以我试着锁定变量,我猜没有数学,你点击它多少次会增加1倍那么
禁用
对你有帮助吗?如果你提供旋转,我可以看得更远。不,我知道这是我的第一个解决方案,我仍然能够复制它
<button class="{{if isLoading 'loading'}}"
        {{action 'yourAction'}}
        disabled={{isLoading}}>
    Your Action
</button>