符号视图 & lodash.debounce
Ampersand view & lodash.debounce
我正在使用 lodash.debounce 和符号视图。
我为视图的事件注册我的事件处理程序,例如
events: {
'click [data-hook~=power-on]': "power",
'click [data-hook~=shutdown]': 'shutdown',
但我想使用 debounce,这样如果用户向按钮发送垃圾邮件,它就不会过于频繁地触发。
但是,事件注册似乎只采用方法名称字符串。
我确定我错过了一些简单的事情;但这是非常漫长的一周..
解决方案
我使用了在视图上定义的方法 (powerOn: function()),但它不起作用,因为似乎没有找到 this.powerOn 引用;我不得不将 powerOn 功能移到视图之外,然后以下工作:
'click [data-hook~=power-on]': debounce(powerOn, 2000, { 'leading': true, 'trailing': false }),
The callback may either be the name of a method on the view, or an actual function.
https://ampersandjs.com/docs/#ampersand-view-events
因此您可以在事件中使用函数:
events: {
'click [data-hook~=power-on]': _.debounce(callback)
}
我正在使用 lodash.debounce 和符号视图。
我为视图的事件注册我的事件处理程序,例如
events: {
'click [data-hook~=power-on]': "power",
'click [data-hook~=shutdown]': 'shutdown',
但我想使用 debounce,这样如果用户向按钮发送垃圾邮件,它就不会过于频繁地触发。
但是,事件注册似乎只采用方法名称字符串。
我确定我错过了一些简单的事情;但这是非常漫长的一周..
解决方案
我使用了在视图上定义的方法 (powerOn: function()),但它不起作用,因为似乎没有找到 this.powerOn 引用;我不得不将 powerOn 功能移到视图之外,然后以下工作:
'click [data-hook~=power-on]': debounce(powerOn, 2000, { 'leading': true, 'trailing': false }),
The callback may either be the name of a method on the view, or an actual function. https://ampersandjs.com/docs/#ampersand-view-events
因此您可以在事件中使用函数:
events: {
'click [data-hook~=power-on]': _.debounce(callback)
}