ol-ext Control Bar 和 Controller 中的功能
ol-ext Control Bar and function in the Controller
我有一个 extjs 应用程序,我在其中使用了 ol-ext 控制栏。控制栏在文件 MyApp.js 中,我想调用属于控制栏的按钮的函数在相关控制器 MyAppController。
在 MyApp.js:
var testFuction = function(){
return this.getController().updateImages;
};
var mainbar = new ol.control.Bar();
var first = new ol.control.Button (
{
html: '1',
//handler: 'updateImages',
//reference: 'locationShowImageButton',
handleClick: testFuction,
});
//Standard Controls
mainbar.addControl (first);
mainbar.setPosition('bottom-right');
this.map.addControl(mainbar);
在 MyAppController 中:
updateImages: function (obj) {
var self = this;
this.getView().cleanImageLayers();
var selectedFloors = ; //it should be the value of the ol.control.Button, so 1
if (this.lookupReference('locationShowImageButton').pressed) {
.....
首先检查MyApp.js
中的this.getController()
是否引用了MyAppController
。
You can't use ol.control.Button
like sencha component.
您应该在 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);
我有一个 extjs 应用程序,我在其中使用了 ol-ext 控制栏。控制栏在文件 MyApp.js 中,我想调用属于控制栏的按钮的函数在相关控制器 MyAppController。 在 MyApp.js:
var testFuction = function(){
return this.getController().updateImages;
};
var mainbar = new ol.control.Bar();
var first = new ol.control.Button (
{
html: '1',
//handler: 'updateImages',
//reference: 'locationShowImageButton',
handleClick: testFuction,
});
//Standard Controls
mainbar.addControl (first);
mainbar.setPosition('bottom-right');
this.map.addControl(mainbar);
在 MyAppController 中:
updateImages: function (obj) {
var self = this;
this.getView().cleanImageLayers();
var selectedFloors = ; //it should be the value of the ol.control.Button, so 1
if (this.lookupReference('locationShowImageButton').pressed) {
.....
首先检查MyApp.js
中的this.getController()
是否引用了MyAppController
。
You can't use
ol.control.Button
like sencha component.
您应该在 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);