我需要拒绝 sap.m.Input 控制除整数值以外的任何输入。所以在输入中只能输入0-9,没有任何符号(+-)或任何小数点分隔符。我找不到好的解决方案。以 XML 格式声明的视图,如果可能的话,最好的方法是使用附加参数更改此 XML。
可能的解决方案:
在这种情况下,自定义格式化程序不会帮助您,因为它仅使用一种方式(模型-> 视图)。
但是数据类型在这里是你的朋友。我建议sap.ui.model.type.Integer最小约束为 0。
<Input value="{path: '/value', type: 'sap.ui.model.type.Integer', constraints:{minimum:0}}" />
Run Code Online (Sandbox Code Playgroud)
然而,这确实有两个先决条件:
<script src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js"
id="sap-ui-bootstrap"
data-sap-ui-theme="sap_bluecrystal"
data-sap-ui-libs="sap.m"
data-sap-ui-compatVersion="edge">
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用data-sap-ui-bindingSyntax="complex"。
ValidationException. 该错误将被静默忽略,但不会更新模型。要为用户获得一些反馈,您可以在MessageManager注册控件或整个视图:sap.ui.getCore().getMessageManager().registerObject(this.getView(), true);
Run Code Online (Sandbox Code Playgroud)
您还可以在组件中或在实例化组件时启用handleValidation。