ol-ext控制条和控制器中的功能

时间:2019-05-08 12:10:41

标签: javascript extjs sencha-touch openlayers

我有一个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) {
               .....

1 个答案:

答案 0 :(得分:1)

首先检查 subject do Class.new do include ActiveModel::Validations attr_accessor :email validates :email, email: true end end 中的this.getController()是否引用了MyApp.js

  

您不能像sencha组件那样使用MyAppController

您应该在ol.control.Button范围内使用this

MyApp.js