如何将多个 属性 绑定连接成一个
How to concatenate multiple property bindings into one
我有一个 OData 源,它提供的结果行包含 first_name
& last_name
。
我想在 table 中显示这些内容,其中有一列名为 全名。
我正在尝试使用 JSView(它似乎不如 XML 笨拙)。
我可以像这样进行 1:1 绑定:
var template = new sap.m.ColumnListItem({
// ...,
cells: [
new sap.m.Text({
text: "{first_name}"
})
]
});
但我不知道如何将多个字段绑定/连接到 Text 控件,或者如何将多个 Text 控件放入一个单元格中。
编辑:这与其他建议的解决方案不完全相同,因为这是针对 JSView 而不是 XMLView。
这花了我几个小时的搜索和反复试验,但我终于想出了使用格式化程序回调的方法:
var template = new sap.m.ColumnListItem({
id: "column_template",
type: "Navigation",
visible: true,
cells: [
new sap.m.Text("activity", {
text: {
parts: [
{path: "first_name"},
{path: "last_name"}
],
formatter: function(a,b){
return a+" "+b;
}
}
})
]
});
parts
显然必须是具有 path
属性 的对象数组。路径值必须与 odata 源匹配。
这些值将作为参数传递给 formatter
回调。
编辑:您也可以使用模板进行简单的连接,但有一个技巧 - 您必须将 data-sap-ui-compatVersion="edge"
添加到 bootstrap,然后以下内容将起作用:
new sap.m.Text("activity", {
text: "{first_name} {last_name}"
});
您可以使用以下格式通过简单绑定连接两个值。
XML
<Text text="{first_name} {last_name}" />
JS
new sap.m.Text({
text: "{first_name} {last_name}"
});
先决条件
为了启用复杂绑定语法(又名CompositeBinding),需要以下bootstrap设置:
<script id="sap-ui-bootstrap" src="https://.../resources/sap-ui-core.js"
data-sap-ui-compatversion="edge"
...
>
发件人:
我有一个 OData 源,它提供的结果行包含 first_name
& last_name
。
我想在 table 中显示这些内容,其中有一列名为 全名。
我正在尝试使用 JSView(它似乎不如 XML 笨拙)。
我可以像这样进行 1:1 绑定:
var template = new sap.m.ColumnListItem({
// ...,
cells: [
new sap.m.Text({
text: "{first_name}"
})
]
});
但我不知道如何将多个字段绑定/连接到 Text 控件,或者如何将多个 Text 控件放入一个单元格中。
编辑:这与其他建议的解决方案不完全相同,因为这是针对 JSView 而不是 XMLView。
这花了我几个小时的搜索和反复试验,但我终于想出了使用格式化程序回调的方法:
var template = new sap.m.ColumnListItem({
id: "column_template",
type: "Navigation",
visible: true,
cells: [
new sap.m.Text("activity", {
text: {
parts: [
{path: "first_name"},
{path: "last_name"}
],
formatter: function(a,b){
return a+" "+b;
}
}
})
]
});
parts
显然必须是具有 path
属性 的对象数组。路径值必须与 odata 源匹配。
这些值将作为参数传递给 formatter
回调。
编辑:您也可以使用模板进行简单的连接,但有一个技巧 - 您必须将 data-sap-ui-compatVersion="edge"
添加到 bootstrap,然后以下内容将起作用:
new sap.m.Text("activity", {
text: "{first_name} {last_name}"
});
您可以使用以下格式通过简单绑定连接两个值。
XML
<Text text="{first_name} {last_name}" />
JS
new sap.m.Text({
text: "{first_name} {last_name}"
});
先决条件
为了启用复杂绑定语法(又名CompositeBinding),需要以下bootstrap设置:
<script id="sap-ui-bootstrap" src="https://.../resources/sap-ui-core.js"
data-sap-ui-compatversion="edge"
...
>
发件人: