将数据异步加载到 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"
下面是使用 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"