我有一个列表组件,我想显示一个按钮,以便在没有结果的情况下发送关于要包含的数据的建议。
List 组件本身是这样实现的:
{
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'
}
这是搜索字段的处理程序,它只是在商店中设置子字符串过滤器:
'keyup': function(self, e, eOpts) {
queryString = self.getValue();
var store = Ext.getStore('TheStore');
store.clearFilter();
if(queryString){
var thisRegEx = new RegExp(queryString, "i");
store.filterBy(function(record) {
if (thisRegEx.test(record.get('name'))) {
return true;
};
return false;
});
// Changes the button so it shows name
document.getElementById('suggest-name').innerText = queryString;
}
},
现在,我将 emptyText 设置为一些简单的 HTML,模拟 Sencha Touch 按钮的外观,但这意味着我没有任何按钮行为,因为它没有绑定到组件系统(例如在点击时被按下)。由于显示的是正确的按钮,如何设置 emptyText 属性(或模拟它)?