Javascript 向TileContainer动态添加平铺

Javascript 向TileContainer动态添加平铺,javascript,json,sapui5,tiles,Javascript,Json,Sapui5,Tiles,我想动态地将Tiles添加到TileContainer中 我得到了一个JSONObject(jsonResponse),看起来是这样的: 现在,我想将Tiles添加到TileContainer。以下是功能: var tc = this.getView().byId("container"); //TileContainer for (var i = 0; i < jsonResponse.length; i++) { alert(jsonRespo

我想动态地将
Tiles
添加到
TileContainer

我得到了一个
JSONObject
(jsonResponse),看起来是这样的:

现在,我想将
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
                    }));
}
var tc=this.getView().byId(“容器”)//TileContainer
对于(var i=0;i
添加了
磁贴
,但没有任何内容。只是白色的。
当我记录
jsonResponse[I].Title
时,我得到了
jsonObject

的值,我认为您的迭代一开始就不正确:
for(var i=0;i


您应该迭代响应,当您迭代单个响应的字段时,
jsonResponse
的最大值
i
等于
jsonResponse

中的字段数,我认为您的迭代从以下开始是不正确的:
for(var i=0;i


您应该遍历响应,当您遍历单个响应的字段时,
jsonResponse
的最大值
i
等于
jsonResponse

中的字段数。您不使用数据绑定,这是一个错误,因为这是sapui5的核心:)

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

var model = new sap.ui.model.json.JSONModel({ data: jsonResponse });
this.getView().setModel(model);
然后将平铺容器和平铺绑定到刚刚创建的模型

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



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

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

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

var model = new sap.ui.model.json.JSONModel({ data: jsonResponse });
this.getView().setModel(model);
然后将平铺容器和平铺绑定到刚刚创建的模型

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



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

下面是一个javascript示例。希望这对您有所帮助

sap.ui.controller(“com.App.Home”),{
onInit:function(){
var oModel=new sap.ui.model.json.JSONModel({
瓷砖集:[
{“标题”:“苹果”},
{“标题”:“黑莓”},
{“标题”:“蓝莓”}
]
});    
sap.ui.getCore().setModel(oModel);
}  
});
sap.ui.jsview(“com.App.Home”{
getControllerName:函数(){
返回“com.App.Home”;
},
createContent:function(){
var oTileTemplate=新sap.m.StandardTile({
图标:“sap-icon://save",
标题:“{title}”
});
var oTileContainer=new sap.m.TileContainer().bindAggregation(“tiles”,“TileSet”,“oTileTemplate”);
var oPage=新sap.m.Page({
标题:“互动程序容器动态自定义互动程序”,
启用滚动:false
}).addContent(oTileContainer);
var app=新的sap.m.app();
app.addPage(oPage);
返回应用程序;
}
});
var oView=sap.ui.view({
id:“jsview1”,
viewName:“com.App.Home”,
类型:sap.ui.core.mvc.ViewType.JS
}).placeAt(“内容”)

平铺容器动态自定义平铺-JS视图

这是一个javascript示例。希望对您有所帮助

sap.ui.controller(“com.App.Home”),{
onInit:function(){
var oModel=new sap.ui.model.json.JSONModel({
瓷砖集:[
{“标题”:“苹果”},
{“标题”:“黑莓”},
{“标题”:“蓝莓”}
]
});    
sap.ui.getCore().setModel(oModel);
}  
});
sap.ui.jsview(“com.App.Home”{
getControllerName:函数(){
返回“com.App.Home”;
},
createContent:function(){
var oTileTemplate=新sap.m.StandardTile({
图标:“sap-icon://save",
标题:“{title}”
});
var oTileContainer=new sap.m.TileContainer().bindAggregation(“tiles”,“TileSet”,“oTileTemplate”);
var oPage=新sap.m.Page({
标题:“互动程序容器动态自定义互动程序”,
启用滚动:false
}).addContent(oTileContainer);
var app=新的sap.m.app();
app.addPage(oPage);
返回应用程序;
}
});
var oView=sap.ui.view({
id:“jsview1”,
viewName:“com.App.Home”,
类型:sap.ui.core.mvc.ViewType.JS
}).placeAt(“内容”)

平铺容器动态自定义平铺-JS视图

有控制台错误吗?没有。。一切似乎都正常,但磁贴只是空的..在plunker中创建此示例,是否更容易测试任何控制台错误?什么都没有。。一切似乎都很好,但瓷砖只是空的..在plunker中制作此示例,将更容易测试谢谢!这非常适合我:)而且不,jsonResponse不仅仅是一个字符串。。不过没关系,你解决了我的问题,非常感谢:)谢谢!这非常适合我:)而且不,jsonResponse不仅仅是一个字符串。。但不管怎样,你解决了我的问题,非常感谢:)