Dojo加载错误,错误' Uncaught string.substitute找不到键"!actionBarTemplate"在模板'在最近的dojo更新之后

时间:2016-11-02 22:18:36

标签: dojo

我已经为我的一个使用框架的项目更新了dojo。在最近的更新后,我注意到一个奇怪的错误' Uncaught string.substitute找不到密钥"!actionBarTemplate"在模板'和dojo加载失败。我尝试在线研究错误并从源文件中跟踪,但无法找出原因。如果您有任何人知道为什么会发生这种情况或遇到类似情况,请告诉我。谢谢!

1 个答案:

答案 0 :(得分:0)

如果dijit/_TemplatedMixin无法找到模板中存在但未在窗口小部件中显示的密钥,则会抛出此错误,正好在_stringRepl中调用的buildRendering函数中1}}一个小部件。

以下是返回此功能的内容:

return string.substitute(tmpl, this, function(value, key){
    if(key.charAt(0) == '!'){ value = lang.getObject(key.substr(1), false, _this); }
    if(typeof value == "undefined"){ throw new Error(className+" template:"+key); }
    if(value == null){ return ""; }

请注意throw new Error部分?

现在,包含密钥!actionBarTemplate的唯一模板是
   - dijit \ templates \ TooltipDialog.html
   - dijit \ templates \ Dialog.html

那么,你有一个使用这个模板但没有属性actionBarTemplate的小部件吗?可能会将属性actionBarTemplate: ""添加到小部件来修复您的问题。

请注意,如果您的模板中有${title},那么最终会询问this.title是否存在,因此,请确保至少有title: null < / p>

希望有所帮助