javascript - 从 block 中的不同函数调用定义 block 中的javascript函数

标签 javascript arcgis-js-api

以下是我的代码的简化版本。

define ([ 
"dojo/dom",
"dojo/_base/array", 
"dojo/_base/declare",
"dgrid/OnDemandGrid", 
"dgrid/Selection",
"dgrid/Keyboard",
"dijit/form/Button",
"dojo/store/Memory",
"dojo/dom-construct",
"dojo/string",
"esri/layers/FeatureLayer", 
"esri/tasks/query",
"esri/tasks/QueryTask",
"javascript/myUtilities",
"javascript/myCSV",
"javascript/myGrid"
  ], function (  
dom,arrayUtils,declare,Grid,Selection,Keyboard,Button,Memory,domConstruct,dojoString,FeatureLayer,Query,QueryTask, myUtilities, myCSV, myGrid) {  
return {
        initializeParkGrid: function(gridid, gridDiv){
                            //code is here
                            return app.parkGrid;
                            },     
        initializeTrailGrid: function(gridid, gridDiv){
                                //code is here
                            return app.trailGrid;
                            },

        updateParkGrid: function(){     
                                //code is here

                              app.parkGrid.on('.dgrid-row:click', function(event){
                                  initializeTrailGrid();
                              });
                            });
                        }                                   
        };
  }); 

每当在 app.parkGrid 中单击一行时,我想调用 initializeTrailGrid() 函数。当我尝试按照编写的方式运行它时,我收到一条错误消息,告诉我 initializeTrailGrid 不是一个函数。如果我从另一个文件中的 define block 调用 initializeTrailGrid(),它工作正常。上面显示的代码在文件 myGrid 中,所以我尝试将 javascript/myGrid 放在定义列表中并使用 myGrid.initializeTrailGrid() 调用但这也不起作用。鉴于 define block 的结构,有没有办法做到这一点?

最佳答案

最好创建一个类:

Myclass = function () {
    this.initializeParkGrid = function (gridid, gridDiv) {
        return app.parkGrid;
    }
}

然后,点击事件,调用方法...不要忘记初始化类:

var myclass = new Myclass();

app.parkGrid.on('.dgrid-row:click', function(event){
   myclass.initializeParkGrid(a, b);
});

关于javascript - 从 block 中的不同函数调用定义 block 中的javascript函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46119450/

相关文章:

Javascript 在谷歌浏览器中工作但在 IE 中被阻止

javascript - Polymer - 将事件绑定(bind)到动态创建的元素

javascript - 从 json 对象创建水平描述列表

javascript - ArcGIS API - 无法居中或缩放

javascript - 搜索小部件 - 如何确定是否按下了 "Enter"或选择了结果?

routes - GIS/ map 解决方案可轻松访问路线数据

javascript - ESRI - 单击要素时返回属性

javascript - 如何在 Javascript 中更新深度嵌套的对象?

javascript - 他们如何使用此页面上的 native mac 颜色选择器 : http://beta. theexpressiveweb.com/#!/css3-gradients

javascript - 导入 ECMAScript 6 时为 "Uncaught SyntaxError: Cannot use import statement outside a module"