绑定数据JSON SAPUI5(Tiles菜单)

时间:2017-05-04 04:23:52

标签: javascript json xml sapui5

我想绑定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时,我无法选择绑定。如何解决这个问题?

谢谢, 波比

1 个答案:

答案 0 :(得分:0)

这就是我要做的。

步骤1.在onInit()中,使用获取json对象 var jsonData = $.getJSON("metroui/module.json");

步骤2.检查jsonData是否具有&#39;模块&#39;或者&#39;系统&#39;运用 If ('module' in jsonData.module)