主题 "Troubleshooting" 浏览器控制台内无响应

Topic "Troubleshooting" no response inside browser console

我无法按照浏览器开发工具的 UI5 文档主题 Troubleshooting 中所述使它正常工作。

我已经输入了代码,但我没有看到任何回应。

myView=sap.ui.getCore().byId("HeapOfShards---app").
myView.byId("myButton").

第 1 期

从文档中粘贴代码片段时,您需要省略句号 (.)。
否则,控制台会认为表达式不完整,因此没有响应。

但是仅仅省略句号会导致myView未定义的错误。请参阅第 2 期

第 2 期

从 UI5 1.61.0 开始,示例代码中的组件 (id="HeapOfShards") 从父 ComponentContainer (id="container") 获得一个额外的自动前缀 ID。因此,像题目中那样通过全局ID访问根视图时,需要在前面加上ComponentContainer的ID:

myView = sap.ui.getCore().byId("container-HeapOfShards---app");
myView.byId("myButton");

这显然是一个需要修复的文档问题。 更新:现在fixed

为什么它不起作用

在 1.61 中,疑难解答 的示例代码从通过内联脚本创建 ComponentContainer 转变为通过模块 sap/ui/core/ComponentSupport. 以声明方式创建它commit

之所以.byId("HeapOfShards---app")突然失败是因为ComponentSupport在创建ComponentContainer的时候预先设置了几个设置,其中autoPrefixId默认得到truesrc

在没有 ComponentSupport 的情况下直接创建ComponentContainer 时,autoPrefixId 默认为false,这就是为什么它在以前的版本中都很好。