【问题标题】:List item disclosure isn't firing inside a controller列表项披露未在控制器内触发
【发布时间】:2013-01-03 04:31:22
【问题描述】:

我正在尝试使用控制器参考在 Sencha Touch 中的列表项中使用项目披露。但是该事件似乎永远不会在控制器内部触发/接收。我见过的所有示例都有使用侦听器的列表项,但我认为这不是非常 MVC,所以我试图这样做(他们有什么理由使用侦听器而不是控制器吗?)

在我看来,列表是 EnquiryIndex 视图中的一个项目。

当我在控制台窗口中执行此操作时,它会正确返回列表,因此我知道 ref 工作正常:

Ext.ComponentQuery.query("enquiryindexview list")[0]

见下例:

Ext.define('MyApp.controller.EnquiryIndex', {
    extend: 'Ext.app.Controller',

    requires: [

    ],

    config: {
        refs: {           
           enquiryIndexViewRef: 'enquiryindexview list'
        },

    control: {
        'enquiryIndexViewRef': {
            disclose: 'onDiscloseEnquiryIndex'
        }            
    }
},

onDiscloseEnquiryIndex: function (rec) {

   // never gets here!
}

});

【问题讨论】:

  • 改用“#enquiryindexview list”怎么样
  • 你让它工作了吗?
  • 我尝试改用“itemtap”,这似乎有效。是否有任何理由为什么公开不起作用?两者有什么区别?
  • 您列表的配置是否包括onItemDisclosure : true
  • 另外值得注意的是,当任何监听器返回false时,动作(disclose)被取消。

标签: sencha-touch sencha-touch-2


【解决方案1】:

试试这个

config: {
  control: {
    'enquiryindexview list': {
      disclose: 'onDiscloseEnquiryIndex'
  }            
}

或者这个

config: {
  refs: {           
     enquiryIndexViewRef: 'enquiryindexview list'
  },

  control: {
    enquiryIndexViewRef: {
      disclose: 'onDiscloseEnquiryIndex'
  }            
}

希望对你有帮助

【讨论】:

  • 好的,在语音标记中没有控制参考有什么意义?公开/itemtap有什么区别?
  • 在 refs 对象中有引用允许您调用 this.getMY_REF()。不知道还有什么其他区别。然后当您点击项目(任何地方)时会触发 itemtap 事件,当您点击元素中的箭头/披露项目时会触发公开事件。
  • 等一下,我一直假设披露是一样的。我认为该图标太小而无法按其本身的事件进行。我会重新测试并回复你。我询问语音分数的原因是,除了分数之外,我的示例与您的示例相同,并且不确定差异。但我想这是常规的 json...
  • 我测试过,报价没有区别。但我认为您的问题在于 itemtapdisclose 之间的区别,正如 TDeBaileul 指出的那样。 disclose 仅用于箭头图标。
  • 好吧,我想这是我对事件生成方式的误解。我不认为在比列表项本身小得多的手机上单击该图标非常有用。我认为 itemtamp 将是更好的候选人。不过感谢您的帮助。
【解决方案2】:

您可能错过了在 app.js 中添加这一行

controllers: ['EnquiryIndex'],

试试这个,它现在应该可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多