Sencha touch 2 Sencha Touch 2列表中的组件emptyText

Sencha touch 2 Sencha Touch 2列表中的组件emptyText,sencha-touch-2,Sencha Touch 2,我有一个列表组件,我想显示一个按钮,在没有结果的情况下发送包含数据的建议 列表组件本身的实现方式如下: { xtype: 'list', itemTpl: '{name}', // This is not ideal! emptyText: [ '<div class="x-button-normal x-button">',

我有一个列表组件,我想显示一个按钮,在没有结果的情况下发送包含数据的建议

列表组件本身的实现方式如下:

        {
            xtype: 'list',
            itemTpl: '{name}',

            // This is not ideal!
            emptyText: [
                '<div class="x-button-normal x-button">',
                    '<span class="x-button-label">',
                        'Suggest <i><span id="suggest-name"></i>',
                    '</span>',
                '</div>'
            ].join(''),

            store: 'TheStore'
        }

现在,我将emptyText设置为一些简单的HTML,模拟Sencha触摸按钮的外观,但这意味着我没有任何按钮行为,因为它没有绑定到组件系统中(例如点击时被按下)。既然显示了正确的按钮,如何设置emptyText属性(或模拟它?

尝试查看下面的两个屏幕广播


    • 我知道现在已经晚了两年左右。。。但我遇到了与@Hampus Nilsson相同的问题,当我找到解决方案时,我想如果两年后我遇到这个问题,其他人也可能会遇到

      话虽如此。。。我目前正在运行Sencha Touch 2.3.1版。解决方案,因为它涉及到该版本,是非常容易实现,只是超级棘手的发现。问题是Sencha在emptyText组件(x-list-emptyText类)上有一个CSS属性,它忽略了所有被称为
      指针事件的指针交互:无(谁知道?!)

      此属性位于:

      [sdk_root]/resources/themes/stylesheets/sencha touch/base/src/dataview/_List.scss

      要解决这个问题,只需在您自己的sass/css中重写该属性。我选择用
      指针事件来覆盖它:inherit但您的里程数可能会有所不同

      然后,您所需要做的就是在列表上设置一个侦听器,我建议在列表类的initialize函数中这样做:

      this.emptyTextCmp.element.on({
          delegate: '.x-button-normal',
          scope: this,
          tap: this.yourCustomFunction
      });
      
      其中
      这是您的列表组件。需要注意的是,在委托的类名前面需要一个“.”。在上面的示例中,我将委托设置为:'.x-button-normal',因为这是问题代码中列出的两个类之一。我也可以用“.x按钮”如果是我,我会给你的html增加一个类,用作委托,这有助于更好地识别它,而不仅仅是使用默认的Sencha类作为委托。这是一种意见,不是要求


      就这样,我希望这对其他人有帮助

      你在Sencha论坛上看过这个帖子吗?它讨论了在列表中呈现组件(从技术上讲,是组件视图)。这两个视频都没有提到我的情况。
      .x-list-emptytext {
              text-align: center;
              pointer-events: none;  // THIS ONE!!
              font-color: #333333;
              @include st-box();
              @include st-box-orient(vertical);
              @include st-box-pack(center);
      }
      
      this.emptyTextCmp.element.on({
          delegate: '.x-button-normal',
          scope: this,
          tap: this.yourCustomFunction
      });