参考"Payroll Control Center Mockup" post,如何使用JSON表示法将元素绑定到JS视图中的UI控件而不是XML?
以下是XML视图的快照
<IconTabFilter
binding="{/cities/0}"
text="{name} ({id})"
icon="sap-icon://group"
design="Horizontal">
</IconTabFilter>
我试图在JS视图中做同样的事情,但无法让它工作
new sap.m.IconTabFilter({
bindElement:'{/cities/1}',
icon: "sap-icon://notes",
text:"{/name}",
//text:
count: "12",
color:sap.ui.core.IconColor.Critical,
content: new sap.m.Text({
text: "Notes go here ..."
})
}),
我在index.html中指定了ComplexBinding,也尝试了各种选项,例如。
association:'{/cities/1}',
aBindings:'{/cities/1}',
答案 0 :(得分:3)
虽然您可以使用binding
作为XML属性,但在JavaScript中定义控件时,不能以相同的方式使用bindElement
。 bindElement
是一种方法而不是财产。所以这是一种方法:
var aIconTabFilters = [0,1].map(function(n) {
var oITF = new sap.m.IconTabFilter({
text: "{name} ({id})",
icon: "sap-icon://group",
design: "Horizontal"
});
oITF.bindElement("/cities/"+n);
return oITF;
});
请注意,bindElement
被明确调用。
我re-written the mockup using a JavaScript view in a different branch of the repo所以您可以在上下文中查看它并将其与original XML view version here进行比较。