Javascript SenchaTouch2:如何确定是否因为实际显示视图而触发show事件
在sencha touch 2Javascript SenchaTouch2:如何确定是否因为实际显示视图而触发show事件,javascript,sencha-touch-2,Javascript,Sencha Touch 2,在sencha touch 2Ext.navigation.View中,可以推送()和弹出()其他视图。其他视图触发事件,如hide和show 初始化 隐藏 激活 展示 像这样弹出时: 停用 隐藏 展示 除去 毁灭 因此,依靠show或hide事件并不是最好的办法,因为在这两种情况下都会被解雇。 我认为这是一个错误,类似的事情已经发生了。尽管如此,我使用的版本(ST 2.0.1.1)中仍然存在这种行为,根据论坛中@rdougan的解释: 这背后的原因是,当一个项目是从卡删除 布局,它实际上可能显
Ext.navigation.View
中,可以推送()
和弹出()
其他视图。其他视图触发事件,如hide
和show
show
或hide
事件并不是最好的办法,因为在这两种情况下都会被解雇。我认为这是一个错误,类似的事情已经发生了。尽管如此,我使用的版本(ST 2.0.1.1)中仍然存在这种行为,根据论坛中@rdougan的解释: 这背后的原因是,当一个项目是从卡删除 布局,它实际上可能显示在其他地方-或者可能是 正在更改为可浮动。因此,我们必须将该项目恢复到其原始状态 原始可见状态
它也不会改变。所以我试图找出哪个事件是真正发生的。这个问题有一个解决方案。假设有人监听视图中的事件,而不是控制器,则可以使用以下小片段:
Ext.Array.contains(this.up('navigationview').getActiveItem().getXTypes().split('/'), this.xtype)
检查视图是否实际显示(
true
)或隐藏(false
)。当然,您必须在要使用的视图上定义自己的配置属性,以使其正常工作。在我的例子中,它是一个Ext.Panel
这个问题有一个解决方案。假设有人监听视图中的事件,而不是控制器,则可以使用以下小片段:
Ext.Array.contains(this.up('navigationview').getActiveItem().getXTypes().split('/'), this.xtype)
检查视图是否实际显示(
true
)或隐藏(false
)。当然,您必须在要使用的视图上定义自己的配置属性,以使其正常工作。在我的例子中,它是一个Ext.Panel
比较实例是否有问题?e、 g.:this.up('navigationview')。getActiveItem()==这在比较实例时有问题吗?e、 g.:this.up('navigationview')。getActiveItem()==this