首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SAP UI5:使用生命周期钩子函数动态填充XML下拉列表

SAP UI5:使用生命周期钩子函数动态填充XML下拉列表
EN

Stack Overflow用户
提问于 2014-07-10 09:09:35
回答 1查看 2.5K关注 0票数 1

我已经完成了使用教程构建类似Fiori的UI的SAPUI5,并尝试添加了一个排序函数

下拉框中填充了JSON-Model-Data的名称:

代码语言:javascript
复制
{
"SalesOrderCollection": [
    {
        "SoId": "300000097",
        "ApprovalStatus": "",
        "Status": "Initial",
        "ConfirmationStatus": "",
        "BillingStatus": "Initial",
        ...
        } ...

我在View中实现了这个函数,以填充下拉列表:

代码语言:javascript
复制
    fillDropdown : function(evt) {

    // Get current view and dropdownbox
    var oView = this.getView();
    var oDropdown = oView.byId("ddbox");

    // Get names of nodes in model
    var metaArray = Object.getOwnPropertyNames(oView.getModel()
            .getProperty("/SalesOrderCollection/0"));

    // Add every name to dropdownbox
    var arrayLength = metaArray.length;
    for ( var i = 0; i < arrayLength; i++) {
        oDropdown.addItem(new sap.ui.core.ListItem("item" + i)
                .setText(metaArray[i]));
    }
}

最后,我的问题来了:

如何在呈现视图时自动运行此函数?我知道生命周期挂钩函数onInit & onBeforeRendering,但是我不能在XML中使用它们:

我可以在这里注册UI元素的均衡器:

代码语言:javascript
复制
<uicom:DropdownBox id="ddbox" editable="true" change="handleListSort">

但不是像我在这里尝试过的那样用于视图或页面:

代码语言:javascript
复制
<Page title="myPage" onBeforeRendering="fillDropdown">

<core:View controllerName="sap.ui.demo.myFiori.view.Master" (...) onBeforeRendering="fillDropdown">

可能的脏解决方法:单击IconTabBar中的排序按钮时调用该函数

代码语言:javascript
复制
<IconTabBar select="fillDropdown">

谢谢你的帮忙!

更新

如果我使用JavaScript而不是XML,我可以简单地在我的视图的fillDropdown函数中实现我的onAfterRendering函数。但是,为什么XML视图不抛出生命周期挂钩事件?

更新2

我也不能使用我的View的onAfterRendering;oView.getModel().getProperty("/SalesOrderCollection/0");不返回对象,因为我的模型的内容只有在钩子函数之后才可用。

EN

回答 1

Stack Overflow用户

发布于 2014-07-11 00:06:13

onInit、onBeforeRendering、onAfterRendering、onExit是生命周期事件。您不需要从视图中注册。当您实现独立于视图类型时,应该调用您的函数。请看这里,http://jsbin.com/hiyanuqu/1/edit

顺便说一句,sap.m库中有一个类似的内置控件,称为Input with control。https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/explored/index.html#/sample/sap.m.sample.InputSuggestionsCustomFilter

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24672554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档