2014-04-01 29 views
0

我有一个带有面板的视图文件,其中包含一个字段集,该字段集又包含4个切换按钮。我有产生对切换按钮,价值变动输出控制器文件,在定义控制器sencha的同时访问内部物品

Controller.js

View.js

目前你可以看到,我个人获得refrences每个切换按钮,和处理的变化事件。有什么办法可以创建一个fieldset引用,然后用它来引用切换按钮(它是内部项目),并以编程方式处理切换按钮'change'事件?的control

回答

0


第一个参数是一个选择器,所以它应该结合听者从视图(http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.app.Controller-method-control)每个所选项目。
事情是这样的:

Ext.define('test.controller.sortList', { 
    extend: 'Ext.app.Controller', 
    views: ['test.view.sortList'], 

    init: function() { 
     var me = this; 
     me.control({ 
      'fieldset #sortFirstName': { 
       change: me.sortFirstName 
      } 
     }); 
    }, 

    sortFirstName: function (field, newValue, oldValue) { 
     console.log('Value of this toggle has changed:', (newValue) ? 'ON' : 'OFF');  
    } 
}); 

或者你可以在视图中添加监听到这个事件,并准备使用PARAMS解雇你的自定义事件:

{ 
    xtype: 'togglefield', 
    id: 'sortFirstName', 
    value:1, 
    label: 'First Name', 
    labelWrap:true, 
    labelWidth: '50%', 
    listeners: [ 
     change: function (field, newValue, oldValue) { 
      // making smth with params 
      this.fireEvent('sortFirstName', param); 
     }, 
     scope: me 
    ] 
} 

,并进行管理的内部控制是这样的:

me.control({ 
    'viewxtype': { 
     sortFirstName: me.sortFirstName, 
     sortSomethingMore: me.sortSmthMore 
    } 
});