首先,我认为您需要查看一些 javascript 基础知识……然后,如果您明白了,请查看 sencha 的示例和教程。
在视图中,您有复选框组件。
在控制器中,您侦听更改事件
如果控制器中有另一个需要该值的函数,则将其作为变量传递给需要它的函数(=basic javascript),或者获取复选框组件并调用getValue()方法。
这是一个例子:http:
//jsfiddle.net/Vandeplas/fDces/
//Defining a Controller
Ext.define('AM.controller.Pizza', {
extend: 'Ext.app.Controller',
init: function () {
this.control({
'viewport > panel': {
render: this.onPanelRendered
},
'checkbox': {
change: this.onCheckChange
},
'button[action=orderPizza]' : {
click: this.onOrderPizza
}
});
},
onCheckChange: function (checkbox, newValue, oldValue, eOpts) {
console.log(newValue ? 'you checked ' + checkbox.boxLabel : 'you unchecked ' + checkbox.boxLabel);
},
onOrderPizza: function(button, e, eOpts){
var checkboxes = button.up('form').query('checkbox');
Ext.each(checkboxes, function(chk){
console.log(chk.boxLabel + ': ' + chk.getValue());
});
},
onPanelRendered: function () {
console.log('The panel was rendered');
}
});
//Defining a View
Ext.define('AM.view.CheckForm', {
extend: 'Ext.form.Panel',
alias: 'widget.checkform',
title: 'Choose toppings',
initComponent: function () {
this.items = [{
xtype: 'fieldcontainer',
fieldLabel: 'Toppings',
defaultType: 'checkboxfield',
items: [{
boxLabel: 'Anchovies',
name: 'topping',
inputValue: '1',
id: 'checkbox1'
}, {
boxLabel: 'Artichoke Hearts',
name: 'topping',
inputValue: '2',
checked: true,
id: 'checkbox2'
}, {
boxLabel: 'Bacon',
name: 'topping',
inputValue: '3',
id: 'checkbox3'
}]
}, {
xtype: 'button',
text: 'Order',
action: 'orderPizza'
}];
this.callParent(arguments);
}
});
//Creating the application
Ext.application({
requires: ['Ext.container.Viewport'],
name: 'AM',
appFolder: 'app',
controllers: ['Pizza'],
launch: function () {
Ext.create('Ext.container.Viewport', {
layout: 'fit',
items: [{
xtype: 'checkform'
}]
});
}
});