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不仅仅是一个字符串。。但不管怎样,你解决了我的问题,非常感谢:)