Javascript Extjs MVVM-滑块小部件更改事件
在MVVM结构中,我非常困惑如何从某些视图元素触发控制器中的某些函数。按钮和一些简单事物的处理程序正在工作,但这里我有一个例子,我无法正确理解 或者看Javascript Extjs MVVM-滑块小部件更改事件,javascript,extjs,mvvm,Javascript,Extjs,Mvvm,在MVVM结构中,我非常困惑如何从某些视图元素触发控制器中的某些函数。按钮和一些简单事物的处理程序正在工作,但这里我有一个例子,我无法正确理解 或者看 Ext.define('MVVM.view.Master', { extend : 'Ext.grid.Panel', xtype : 'mvvm-MasterView', requires: [ 'Ext.grid.column.Action', 'Ext.ProgressBarWidget', 'Ext.slide
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'
}
谢谢如果您指的是普通控制器而不是ViewController,则可以执行以下操作:
var controller=MyApp.app.getController('MyApp.controller.MainController');
controller.doMethod()代码>
如果您指的是视图控制器,那么本文非常有用:
如果您指的是普通控制器而不是ViewController,则可以执行以下操作:
var controller=MyApp.app.getController('MyApp.controller.MainController');
controller.doMethod()代码>
如果您指的是视图控制器,那么本文非常有用:
是的,这是可行的,只是从视图中我不知道控制器名称。。。MyApp.app.getController('MyApp.controller.MainController');我很久以前就发布了这个,我必须检查一下,也许我已经找到了一些解决方案。好的,当然。控制器名称与在控制器文件顶部定义的名称相同,不应更改。例如,您应该知道哪个控制器中有您想要的方法。唯一的区别是,如果您使用的是ViewController,则需要一种稍微不同的方法。是的,这是可行的,只是我不知道视图中的控制器名称。。。MyApp.app.getController('MyApp.controller.MainController');我很久以前就发布了这个,我必须检查一下,也许我已经找到了一些解决方案。好的,当然。控制器名称与在控制器文件顶部定义的名称相同,不应更改。例如,您应该知道哪个控制器中有您想要的方法。唯一的区别是,如果您使用的是ViewController,则需要稍微不同的方法。