javascript - 如何从 Dojo gridx detailProvider(Dod 模块)获取声明类的引用

标签 javascript web dojo dojox.grid.datagrid dojo.gridx

使用 Dojo 框架。

我有一个 2 嵌套网格。 Grid 1 使用带有 detailprovider 的 Dod 在单击展开图标时按需加载详细信息。按下时会打开一个嵌套的网格。我需要跟踪两个网格中所做的更改。在声明类中,我有一个数组来跟踪所做的更改。问题是我无法从 detailprovider 访问数组。因为我必须遵守 gridx 稍后调用的协议(protocol)。我该怎么做才能获得对声明类的引用

var myDeclaringClass = declare([_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin], {
    array: [],

    initGrid: function(){ 
        var grid = new Grid({
            store: store,
            structure: columns,
            modules: [ {
                  moduleClass: Dod,
                  showExpando: true,
                  detailProvider: this.myDetailProvider
            }]
        });

        // .... grid.placeAt() .. grid.startup()
    },

    myDetailProvider: function(parentGrid, rowId, detailNode, rendered) {
        // construct Nested Grid ...

        // How to obtain this reference here?
        // to access this.array?

        rendered.callback();
        return rendered;
    }
    retrun myDeclaring;
}

编辑: 我也尝试过使用静态变量,例如:

statics: { array: [] }

但在这里我仍然需要一个实例引用来访问它。

最佳答案

尝试这样的事情

 var myDeclaringClass = declare([_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin], {
        array: [],
var globalref : this,//here i'm assigning 'this' i.e. class level ref to the variable

        initGrid: function(){ 
            var grid = new Grid({
                store: store,
                structure: columns,
                modules: [ {
                      moduleClass: Dod,
                      showExpando: true,
                      detailProvider: this.myDetailProvider
                }]
            });

            // .... grid.placeAt() .. grid.startup()
        },

        myDetailProvider: function(parentGrid, rowId, detailNode, rendered) {
            // construct Nested Grid ...

            // How to obtain this reference here?
            // to access this.array?
    globalref.array//should give you access to the array
            rendered.callback();
            return rendered;
        }
        retrun myDeclaring;
    }

关于javascript - 如何从 Dojo gridx detailProvider(Dod 模块)获取声明类的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47289956/

相关文章:

Python 网页抓取 - 下载文件并将所有数据存储在 xml 中

javascript - 在dojo中将数据从一个选项卡绑定(bind)到另一个选项卡(在选项卡打开时?)

javascript - Dojo 获取元素类型

javascript - 预编译模板的 Dust.js 客户端渲染问题

python - 在 Django 模板 forloop 中迭代调用列表的索引

javascript - Mongoose promise 不起作用

javascript - UWP 在 C# 中调用 javascript 并获取返回值

javascript - .焦点不固定

javascript - 正则表达式匹配第一个字符之前和最后一个字符之后的空格或符号之间的字符串

javascript - HTML 表格问题导致 knockout