在MVVM结构中,我很困惑如何从一些视图元素触发控制器中的某些功能。按钮和一些简单的东西的处理程序正在工作,但在这里我有一个例子,我无法弄清楚。
https://fiddle.sencha.com/#fiddle/qcf
或者看
Ext.define('MVVM.view.Master', {
extend : 'Ext.grid.Panel',
xtype : 'mvvm-MasterView',
requires: [
'Ext.grid.column.Action',
'Ext.ProgressBarWidget',
'Ext.slider.Widget',
'Ext.sparkline.*'
],
title : 'Master Panel',
store : 'People',
columns: [
{
text : 'Name',
dataIndex : 'name'
},{
text : 'Slider',
xtype : 'widgetcolumn',
width : 120,
dataIndex: 'progress',
widget: {
xtype: 'sliderwidget',
minValue: 0,
maxValue: 1,
decimalPrecision: 2,
listeners: {
change: function(slider, value) {
//how to trigger something in the controller?
}
}
}
}
},
{
text : 'Email',
dataIndex : 'email',
flex : 1
},
{
text : 'Phone',
dataIndex : 'phone'
}
]
});
每次滑块更改时,我都需要在控制器中调用一个函数。怎么做?
这不起作用:
listeners: {
change: 'controllerFunction'
}
由于
答案 0 :(得分:0)
如果你的意思是普通的控制器而不是ViewController,那么你可以这样做:
var controller = MyApp.app.getController('MyApp.controller.MainController');
controller.doMethod();
如果您的意思是View Controller,那么本文非常有用:
https://www.sencha.com/blog/using-viewcontrollers-in-ext-js-5/