将数据异步加载到 Dojo 工具提示的 getContent()

Loading data asynchronously to Dojo Tooltip's getContent()

下面是使用 getContent 根据鼠标悬停的元素显示 Dojo 工具提示的示例:

require(["dijit/Tooltip", "dojo/query!css2", "dojo/domReady!"], function(Tooltip){
    new Tooltip({
        connectId: "myTable",
        selector: "tr",
        getContent: function(matchedNode){
            return matchedNode.getAttribute("tooltipText");
            // What if we want to load this asynchronously???
        }
    });
});

但是,如果您尝试通过 getContent() 异步加载数据,这将不起作用。任何人都知道如何解决这个问题?

当您在 data-dojo-config 属性 中设置 'async: true' 时,dojo 加载程序将异步加载模块。这意味着只会加载您需要的模块,因此您不会有 dojo/* 或 dijit/* 。

如果您在 JsFiddle 上 运行 遇到过这个问题,您需要做的就是将框架和扩展从 'onLoad' 更改为 'No wrap - in < head>',因此会调用 dojo 加载程序在 require 之前。这是一个example。请注意 fiddle 选项:

data-dojo-config="async:true"