我最近观察到我的 dojo 应用程序的构建版本出现了一些奇怪的行为。一些按钮具有“未定义”标签。这种行为只存在于 Dojo Build 构建的版本中。
经过精确检查,第一次调用返回“未定义”,随后的调用返回正确的消息对象。
然而,为了让事情变得更有趣,在同一个 'require' 中的后续调用仍然返回 undefined。因此,在 Firebug 控制台中执行以下代码:
require(["dojo/i18n"],function(i18n){
for (var i in [1,2])
console.log(i18n.getLocalization("app.ui.widgets", "dialogs", "de"))
})
在第一次调用时打印“未定义”,但在第二次调用时返回值。
我的nls/dialogs.js
:
define({ root:
//begin v1.x content
({
tooMuchElements: "Too many elements. Only the first ${N} are shown.",
}),
//end v1.x content
"de": true,
});
我的nls/de/dialogs.js
:
define(
({
tooMuchElements: "Zu viele Elemente. Nur erste ${N} sind gezeigt.",
})
);
如果没有构建,一切都会正常运行。这里可能是什么问题?是构建中的一些错误,还是某种预期的行为,我需要在使用构建时进行一些“额外”初始化?
我正在使用 Dojo 1.9.2。