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
});