SAPUI5表达式绑定:true“;类型为字符串,属性“应为布尔值”;“封锁”;

SAPUI5表达式绑定:true“;类型为字符串,属性“应为布尔值”;“封锁”;,sapui5,Sapui5,我有一些实现,我在一个对象数组上循环,并为每个对象创建一个新的GenericTile。我需要设置依赖于对象的磁贴的blocked属性Count属性 我尝试对此使用一些表达式绑定,但出现以下错误: “true”是字符串类型,属性“blocked”应为布尔值 元素sap.m.GenericFile#示例0 因为我的数据不在模型中,而是在对象中,所以我尝试在表达式绑定中使用一些变量。我没有找到这种情况的任何示例,因此我不确定这是否可行,或者是否需要创建新模型(至少错误文本听起来像是解释了变量) 这是我

我有一些实现,我在一个对象数组上循环,并为每个对象创建一个新的
GenericTile
。我需要设置依赖于对象的磁贴的
blocked
属性
Count
属性

我尝试对此使用一些表达式绑定,但出现以下错误:

“true”是字符串类型,属性“blocked”应为布尔值 元素sap.m.GenericFile#示例0

因为我的数据不在模型中,而是在对象中,所以我尝试在表达式绑定中使用一些变量。我没有找到这种情况的任何示例,因此我不确定这是否可行,或者是否需要创建新模型(至少错误文本听起来像是解释了变量)

这是我的相关代码:

for (var i = 0; i < aExampleData.length; i++) {
    var oNewTile = new GenericTile("exampleTile" + i, {
        tileContent: new sap.m.TileContent({
            content: new sap.ui.layout.HorizontalLayout({
                content: [
                    new sap.m.Title({
                        text: aExampleData[i].Name
                    }),
                    new sap.m.Text({
                        text: aExampleData[i].Description
                    }),
                    new sap.m.HBox({
                        items: [
                            new sap.m.Text({
                                text: that.getResourceBundle().getText("count")
                            })
                            new sap.m.Text({
                                text: aExampleData[i].Count
                            })
                        ]
                    })
                ]
            })
        }),
        blocked: "{=" + aExampleData[i].Count + "> 0 ? false : true }"
    });

    this.byId(xxx).addItem(oNewTile);
}
for(var i=0;i0?错误:正确}”
});
this.byId(xxx).addItem(oNewTile);
}

有人能给我一个如何解决这个问题的提示吗?谢谢

我忘了我可以在循环中使用一些变量,比如:

if (aExampleData[i].Count > 0) {
    bBlocked = false;
} else {
    bBlocked = true;
}
…并将其分配给被阻止的属性

然而,找出变量是否也可以在表达式绑定中使用以及如何解决错误仍然是一件有趣的事情

更换

blocked: "{=" + aExampleData[i].Count + "> 0 ? false : true }"


这里使用表达式语法是毫无意义的,因为不涉及任何绑定

实际上,表达式绑定是为XML视图引入的

表达式绑定在SAPUI5 XML模板的上下文中特别有用,在该上下文中,带模板的XML视图被预插入,因此SAPUI5控制器是放置不可用的自定义格式化程序函数的自然场所


在JS中,您可以对绑定的值使用formatter函数,也可以使用Ji aSH mented函数来指示可变条件

为什么不简单地执行
阻塞:aExampleData[i]。顺便说一句,计数。
。set/getBlocked
是私有API,属性
阻塞
隐藏的(请参阅)。我建议避免使用这个属性。
blocked: !(aExampleData[i].Count > 0)