使用JSON表示法在JS视图中绑定元素/关联/聚合

时间:2014-02-19 16:34:56

标签: sap sapui5

参考"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}',

1 个答案:

答案 0 :(得分:3)

虽然您可以使用binding作为XML属性,但在JavaScript中定义控件时,不能以相同的方式使用bindElementbindElement是一种方法而不是财产。所以这是一种方法:

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进行比较。