说明
尽管我们在之前的步骤中添加了基本的测试覆盖,但似乎我们意外地破坏了应用,因为它不再在发票中显示价格。我们需要在别人发现之前调试并修复这个问题。
幸运的是,SAPUI5提供了一些调试工具,我们可以在应用程序中使用这些工具来检查应用程序逻辑,浏览器的开发人员工具也相当不错。现在我们将检查根本原因。
预览
诊断窗口
代码
您可以在演练-步骤30查看和下载所有文件。
webapp/view/InvoiceList.view.xml
<mvc:View
controllerName="sap.ui.demo.walkthrough.controller.InvoiceList"
xmlns="sap.m"
xmlns:mvc="sap.ui.core.mvc">
<List
id="invoiceList"
class="sapUiResponsiveMargin"
width="auto"
items="{
path : 'invoice>/Invoices',
sorter : {
path : 'ShipperName',
group : true
}
}">
<headerToolbar>
<Toolbar>
<Title text="{i18n>invoiceListTitle}"/>
<ToolbarSpacer/>
<SearchField width="50%" search=".onFilterInvoices"/>
</Toolbar>
</headerToolbar>
<items>
<ObjectListItem
title="{invoice>Quantity} x {invoice>ProductName}"
number="{
parts: [{path: 'invoice>ExTendedPrice'}, {path: 'view>/currency'}],
type: 'sap.ui.model.type.Currency',
formatOptions: {
showMeasure: false
}
}"
numberUnit="{view>/currency}"
numberState="{= ${invoice>ExtendedPrice} > 50 ? 'Error' : 'Success' }">
<attributes>
<ObjectAttribute text="{
path: 'invoice>Status',
formatter: '.formatter.statusText'
}"/>
</attributes>
</ObjectListItem>
</items>
</List>
</mvc:View>
我们在number属性的绑定中引入了一个输入错误,以模拟频繁出现的错误; 我们使用的是’invoice>ExTendedPrice’,而不是使用’invoice>ExtendedPrice’。现在我们调用应用程序,注意到价格实际上不见了。通过输入快捷键 Ctrl + Shift + Alt / Option + S,我们打开SAPUI5支持诊断工具并检查应用程序。
注意
如果你使用谷歌Chrome浏览器,你可以安装UI5 Inspector插件。有了这个插件,你可以轻松调试基于SAPUI5或OpenUI5的应用程序。更多信息,请参见UI5 Inspector。
除了应用程序的技术信息和类似于浏览器的开发工具控制台的跟踪外,还有一个非常方便的工具用于检查对话框中的此类错误。单击右边的展开符号,打开选项卡Control Tree。
左侧显示SAPUI5控件的层次树,右侧显示所选控件的属性。如果我们现在选择树的第一个ObjectListItem控件,并转到右侧的Binding Infos选项卡,我们实际上可以看到number属性的绑定路径被标记为无效。我们现在可以修正视图中的错误,价格应该会再次出现在发票清单中。
有时错误不容易发现,实际上需要使用浏览器的工具调试JavaScript代码。出于性能方面的考虑,SAPUI5文件以简化版本提供,这意味着所有可能的变量名都被缩短,注释也被删除。
这使得调试更加困难,因为代码的可读性大大降低。可以通过添加URL参数sapu -ui-debug=true来加载调试源,也可以通过按 Ctrl + Shift + Alt / Option + P 并在弹出的对话框中选择“Use Debug Sources”来加载。在重新加载页面之后,您可以在浏览器的开发人员工具的Network选项卡中看到,现在已经加载了许多带有-dbg后缀的文件。这些是源代码文件,包括注释和应用程序的未压缩代码和SAPUI5工件。
技术信息对话框
有关SAPUI5支持工具的更详细解释,请参阅故障排除教程。
如果您在开发任务中遇到了问题,需要一些帮助,您也可以在SAPUI5相关的论坛中提出问题,例如SAP社区或Stack Overflow。
约定
- 按照SAPUI5的约定,未压缩的源文件以*-dbg.js结尾
相关信息
章节
- 第1步:你好世界
- 第2步:引导
- 第3步:控件
- 第4步:XML视图
- 第5步:控制器
- 第6步:模块
- 第7步:JSON模型
- 第8步:可翻译的文本
- 第9步:组件配置
- 第10步:应用程序描述符
- 第11步:页面和面板
- 第12步:Shell控件作为容器
- 第13步:外边距和内边距
- 第14步:自定义CSS和主题颜色
- 第15步:嵌套视图
- 第16步:对话框和片段
- 第17步:片段回调
- 第18步:图标
- 第19步:重用对话框
- 第20步:聚合绑定
- 第21步:数据类型
- 第22步:表达式绑定
- 第23步:自定义格式器
- 第24步:过滤
- 第25步:排序和分组
- 第26步:远程OData服务
- 第27步:模拟服务器配置
- 第28步:使用QUnit进行单元测试
- 第29步:与OPA的集成测试
- 第30步:调试工具
- 第31步:路由和导航
- 第32步:路由与参数
- 第33步:路由回溯和历史
- 第34步:自定义控件
- 第35步:响应性
- 第36步:设备适应
- 第37步:内容密度
- 第38步:可访问性