我想绑定tile菜单,但我遇到绑定选择问题。我有一个JSON结构:
{
"module":{
"module":[
{
"id": "0",
"name": "Kepesertaan"
},
{
"id": "1",
"name": "Layanan dan Manfaat"
},
{
"id": "2",
"name": "Investasi"
},
{
"id": "3",
"name": "Perbendaharaan"
},
{
"id": "4",
"name": "Aktuaria"
}
],
"system":[
{
"id": "5",
"name": "Pengumuman"
}
]
}
}
控制器:
onInit: function(oEvent){
var oModel = new JSONModel("metroui/module.json");
this.getView().setModel(oModel);
},
pressTileModule : function(oEvent){
var sPath = oEvent.getSource().getBindingContext().getPath();
var oModel = this.getView().getModel();
var oContext = oModel.getProperty(sPath);
}
XML:
<core:View xmlns:core="sap.ui.core"
xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.m"
xmlns:l="sap.ui.layout"
xmlns:tnt="sap.tnt"
controllerName="metroui.MetroUI"
xmlns:html="http://www.w3.org/1999/xhtml">
<App id="navCon">
<pages>
<Page id="module" showHeader="false">
<Panel headerText="Module">
<content>
<l:HorizontalLayout
id="TileContainerModule"
allowWrapping="true"
content="{/}">
<GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout"
header="{name}" press="pressTileModule">
<tileContent>
<TileContent>
<content>
<ImageContent description="{id}" src="sap-icon://list"/>
</content>
</TileContent>
</tileContent>
</GenericTile>
</l:HorizontalLayout>
</content>
</Panel>
</Page>
</pages>
</App>
</core:View>
用于绑定对象模块&gt;模块(来自JSON),在content =&#34; {/ module / module}&#34;中的XML文件中设置但我想在控制器中设置内容路径JSON ,因为我想要设置条件绑定,有时我只需要绑定模块&gt;模块或绑定模块&gt;系统(来自JSON结构)。加载JSON文件时如何绑定选择?如果我把JSON结构放在控制器中,我可以创建新的JSON模型this.module.module或this.module.system并设置content =&#34; {/}&#34;在XML中,但是当我加载文件JSON时,我无法选择绑定。如何解决这个问题?
谢谢, 波比
答案 0 :(得分:0)
这就是我要做的。
步骤1.在onInit()中,使用获取json对象
var jsonData = $.getJSON("metroui/module.json");
步骤2.检查jsonData是否具有&#39;模块&#39;或者&#39;系统&#39;运用
If ('module' in jsonData.module)