当存在其他动作时,不会调用Ember动作

时间:2014-05-12 19:20:37

标签: jquery ember.js

JSBin example of issue

我遇到的问题是我没有调用我定义的动作。在上面的示例中,如果删除输入上的focus-out操作绑定,一切正常。隐藏列表和focus-out操作的某种组合导致永远不会触发shouldBeCalled操作。

有什么方法可以解决这个问题吗?我可以安排focus-out行动以shouldBeCalled行动后以任何方式进行吗?

1 个答案:

答案 0 :(得分:1)

它只是不存在,在焦点上,你的列表消失了,用户基本上点击了空气。

你可以通过长按来看到这一点,按下按键会导致焦点消失,你的列表消失,按键点击会点击动作,但是哦,不,它已经消失了!

你陷入了一个很好的难题,处理和响应的最佳方法是考虑整个区域(包括你的项目列表)的焦点,而不仅仅是输入框。但要回答你的问题,确定你可以安排它,但它通常是hacky(要让它持续足够长的时间点击,但不要太久,它看起来没有反应)

var self = this;
Em.run.later(function(){
  self.set('listVisible', false);  
}, 240);

http://emberjs.jsbin.com/mohawidu/4/edit