javascript - 动态添加 Tiles 到 TileContainer

标签 javascript json sapui5 tiles

我想将 Tiles 动态添加到 TileContainer

我得到了一个 JSONObject (jsonResponse),如下所示:

enter image description here

现在我想将 Tiles 添加到 TileContainer。这里的功能:

var tc = this.getView().byId("container"); //TileContainer
for (var i = 0; i < jsonResponse.length; i++) {
                    alert(jsonResponse[i].Title);
                    tc.addTile(new sap.m.StandardTile( jsonResponse[i].id, {
                        icon: "sap-icon://" + jsonResponse[i].Icon,
                        number: jsonResponse[i].Number,
                        numberUnit: jsonResponse[i].NumberUnit,
                        title: jsonResponse[i].Title,
                        info: jsonResponse[i].Info,
                        press: that.onTilePress
                    }));
}

添加了图 block ,但没有任何内容。它只是白色的。 当我记录 jsonResponse[i].Title 时,我得到了 jsonObject 的值。

最佳答案

您不使用数据绑定(bind),这是一个错误,因为这是 sapui5 的核心:)

首先将 json 数据加载到 JSONModel 对象中

var model = new sap.ui.model.json.JSONModel({ data: jsonResponse });
this.getView().setModel(model);

然后将您的图 block 容器和图 block 绑定(bind)到您刚刚创建的模型

<TileContainer tiles={/data}>
    <StandardTile
        icon="{= 'sap-icon://' + ${Icon} }"
        number="{Number}"
        numberUnit="{NumberUnit}"
        title="{Title}"
        info="{Info}"
        press="onTilePress" />
</TileContainer>
<小时/>

阅读您遇到的标题问题,您确定“jsonResponse”已加载到 JS 对象中还是只是一个字符串?

关于javascript - 动态添加 Tiles 到 TileContainer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45877446/

相关文章:

javascript - 在 AngularJs 中的模型 debouce 评估之前访问 md-autocomplete 输入值

javascript - 调用rest webservice时jquery ajax失败

javascript - SAPUI5 - 格式化程序功能不起作用

javascript - 我们必须将ajax代码和web方法放在同一个asp.net页面中吗?

javascript - RequireJS - "No define call for"几个与 Angular 相关的库

javascript - 如何将 Html 对象高度设置为与窗口高度相同?

json - 环回 : Setting Required Fields at a Later Time

html - 使用 ajax 使用 JSON 数据填充现有表

css - 更改输入背景

javascript - SAPUI5 上 .view.xml 和 .controller.js 文件的位置