Javascript ol外部控制栏和控制器中的功能
我有一个extjs应用程序,其中我使用的是ol ext控制栏。控制栏在文件MyApp.js中,我想要调用的函数单击属于控制栏的按钮位于相对控制器MyAppController中。 在MyApp.js中:Javascript ol外部控制栏和控制器中的功能,javascript,extjs,sencha-touch,openlayers,Javascript,Extjs,Sencha Touch,Openlayers,我有一个extjs应用程序,其中我使用的是ol ext控制栏。控制栏在文件MyApp.js中,我想要调用的函数单击属于控制栏的按钮位于相对控制器MyAppController中。 在MyApp.js中: var testFuction=function(){ 返回此.getController().updateImages; }; var mainbar=new ol.control.Bar(); var first=新建ol.control.Button( { html:'1', //处理程
var testFuction=function(){
返回此.getController().updateImages;
};
var mainbar=new ol.control.Bar();
var first=新建ol.control.Button(
{
html:'1',
//处理程序:“updateImages”,
//参考:“locationShowImageButton”,
handleClick:TestFunction,
});
//标准控制
mainbar.addControl(第一个);
mainbar.setPosition(“右下”);
this.map.addControl(主工具栏)
首先检查MyApp.js中的this.getController()
是否参见MyAppController
不能像sencha组件那样使用ol.control.Button
您应该在您的MyApp.js
范围中使用this
var mainbar = new ol.control.Bar();
var me = this;
var first = new ol.control.Button (
{
html: '1',
handleClick: function () {
me.getController().updateImages();
}
});
//Standard Controls
mainbar.addControl (first);
mainbar.setPosition('bottom-right');
this.map.addControl(mainbar);
是否可以附加发生的异常/错误?是否调用了函数updateImages
?是的,我有一个错误:Uncaught TypeError:this.getController不是一个函数
,它就像一个无法与控制器的函数通信并使控制器的函数知道我按下了控制栏的按钮。MyAppController
它是一个ViewController?也许您应该在第一个按钮中使用handleClick:'updateImages'
而不是handleClick:testFunction
。是的。我试过了,它给了我错误options.handleClick.call不是一个函数