Javascript 如何使用OData模型将两个数据属性直接绑定到一个控件属性中?
我使用OData模型将UI控件绑定到GW服务。在服务元数据中,数据结构中有“FirstName”和“LastName”。在UI上,比如说,我使用的是标签控件 现在的问题是如何直接使用OData模型将Label的Text属性绑定到“FullName”(即“FirstName”+“LastName”)字符串?如果使用JSON模型,我可以创建一个局部变量,Javascript 如何使用OData模型将两个数据属性直接绑定到一个控件属性中?,javascript,sapui5,Javascript,Sapui5,我使用OData模型将UI控件绑定到GW服务。在服务元数据中,数据结构中有“FirstName”和“LastName”。在UI上,比如说,我使用的是标签控件 现在的问题是如何直接使用OData模型将Label的Text属性绑定到“FullName”(即“FirstName”+“LastName”)字符串?如果使用JSON模型,我可以创建一个局部变量,FullName=FirstName+LastName,并将Text属性绑定到FullName。但是我如何使用OData模型来实现这一点呢?您可以使
FullName=FirstName+LastName
,并将Text属性绑定到FullName。但是我如何使用OData模型来实现这一点呢?您可以使用,例如:
var oLabel = new sap.ui.commons.Label()
.bindProperty("text", {
parts: [
{path: "/firstName", type: new sap.ui.model.type.String()},
{path: "/lastName", type: new sap.ui.model.type.String()}
],
formatter: function(firstName, lastName){
return firstName + " " + lastName;
}
});
new sap.ui.commons.TextView ({
text: { path: o.value, // o is an object in my local scope
formatter: function(i) {
// after getting your col1 and col2 values you could do the following
var yourConcatValue = col + col2;
return yourConcatValue;
}
}
});
此外,您还可以在sap-ui-core.js中启用复杂数据绑定:
Qualitue和Nikolay的解决方案都很有效。对于简单的组合装订盒,也就是说,只要把两条线放在一起,尼古拉的更好,因为它很简单。关键是要设置数据sap ui xx bindingSyntx=“complex”,否则它将无法工作。对于更复杂的绑定情况,即需要先更改数据类型,然后再进行绑定,Qualiture是值得做的。这是一个更通用的解决方案,但也更复杂。添加
数据sap ui compatversion=“edge”
是当前的最佳做法。看见
<script src="resources/sap-ui-core.js"
id="sap-ui-bootstrap"
data-sap-ui-libs="sap.ui.commons,sap.ui.table,sap.ui.ux3"
data-sap-ui-xx-bindingSyntax="complex"></script>
var oLabel = new sap.ui.commons.Label({
text : "{firstName} {lastName}"
});