在另一个问题中,有人解释了如何为嵌套列表创建通用搜索框。
如何在创建时向此类添加/设置keyup侦听器?我可以在类上添加监听器,但我想在多个屏幕上重用这个类。
Ext.define('Sencha.view.SearchBar', { 扩展:'Ext.Toolbar', xtype : '搜索栏', 要求:['Ext.field.Text', 'Ext.field.Search'], 配置:{ ui: '搜索栏', 布局:'vbox', cls: '大', 项目: [ { xtype: '搜索域', placeHolder: '搜索...', 听众:{ 范围:这个, 键:函数(字段){ console.log(field.getValue()); } } } ] } });
此时我可以将侦听器直接添加到搜索字段吗?
var searchBar = nestedList.add({ 停靠:'顶部', xtype: '搜索栏', 身高:100 });
我也尝试添加这样的侦听器,但我认为我需要能够直接访问该字段
searchBar.on('keyup', function(field) { console.log("foo..."); console.log(field.getValue()); }, 这);
=====================================
[更新] 将委托添加到类:
Ext.define('Sencha.view.SearchBar', { 扩展:'Ext.Toolbar', xtype : '搜索栏', 要求:['Ext.field.Text', 'Ext.field.Search'], 配置:{ ui: '搜索栏', 布局:'vbox', cls: '大', 项目: [ { xtype: '搜索域', placeHolder: '搜索...' } ] }, 初始化:函数(){ 这个.on({ 范围:这个, 代表:'搜索域', keyup: 'onSearchFieldKeyUp' }); }, onSearchFieldKeyUp:函数(字段){ console.log("基类"); console.log(field.getValue()); } });
接下来用我们自己的方法实例化' searchbar '来覆盖默认的onSearchFieldKeyUp
var searchBar = this.nestedList.add({ 停靠:'顶部', xtype: '搜索栏', 身高:75, id: '搜索栏 ID' });