我遇到的问题是我没有调用我定义的动作。在上面的示例中,如果删除输入上的focus-out
操作绑定,一切正常。隐藏列表和focus-out
操作的某种组合导致永远不会触发shouldBeCalled
操作。
有什么方法可以解决这个问题吗?我可以安排focus-out
行动以shouldBeCalled
行动后以任何方式进行吗?
答案 0 :(得分:1)
它只是不存在,在焦点上,你的列表消失了,用户基本上点击了空气。
你可以通过长按来看到这一点,按下按键会导致焦点消失,你的列表消失,按键点击会点击动作,但是哦,不,它已经消失了!
你陷入了一个很好的难题,处理和响应的最佳方法是考虑整个区域(包括你的项目列表)的焦点,而不仅仅是输入框。但要回答你的问题,确定你可以安排它,但它通常是hacky(要让它持续足够长的时间点击,但不要太久,它看起来没有反应)
var self = this;
Em.run.later(function(){
self.set('listVisible', false);
}, 240);