SAPUI5 IconTabBar/IconTabFilter:触发图标选项卡选择

Mar*_*nks 1 sapui5

我有一个XML视图,我用它来显示IconTabBar.在用户选择其中一个"IconTab"时,我想在控制器js文件中触发一个方法.

我有一个IconTab定义的代码.

<IconTabFilter text="Data" icon="sap-icon://documents" press="onData">
    <content press="onData" id="data">
        <cmn:Tree nodes="{/aRoot}">
            <cmn:TreeNode text="{@name} TagNameHere?"></cmn:TreeNode>
        </cmn:Tree>
    </content>
</IconTabFilter>
Run Code Online (Sandbox Code Playgroud)

我假设press ="onData"允许我在控制器文件上触发一个方法.它不是.

有谁知道这是否可以做到,如果可以的话怎么办?

谢谢

马丁

Hao*_*jie 5

您可以通过根据值的值切换逻辑来使用select(oControlEvent)父事件IconTabBarkeyIconTabFilter

<script src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js" id="sap-ui-bootstrap" data-sap-ui-theme="sap_bluecrystal" data-sap-ui-libs="sap.m"></script>
<script id="view1" type="sapui5/xmlview">
    <mvc:View xmlns:l="sap.ui.layout" controllerName="test.controller" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" xmlns:f="sap.ui.layout.form">

        <l:VerticalLayout>

            <IconTabBar select="onSelectChanged">
                <items>
                    <IconTabFilter key="1" text="Test1">
                        <Text text="Test1 " />
                    </IconTabFilter>
                    <IconTabFilter key="2" text="Test2">
                        <Text text="Test2 " />
                    </IconTabFilter>

                </items>
            </IconTabBar>
        </l:VerticalLayout>

    </mvc:View>

</script>
<script>
    sap.ui.controller("test.controller", {
        onSelectChanged: function(oEvent) {
            var key =oEvent.getParameters().key;
            if(key=='1') {
              alert("Click Test1");
            }
            else if(key == '2') 
            {
              alert("Click Test2") 
            };
        }

    });

    var oView = sap.ui.xmlview({
        viewContent: jQuery("#view1").html()
    });
    oView.placeAt("content");
</script>


<boy class="sapUiBody" id="content" />
Run Code Online (Sandbox Code Playgroud)