在控制器中创建StandardListItem并在项目上按事件将不会触发

时间:2015-03-24 08:31:28

标签: javascript sap sapui5

我们在控制器中创建StandardListItems时遇到问题。我们这样做是因为我们必须调用与bindItems相关的另一个OData端点,以获取附件列表。您可以在Detail Controller中看到下面的部分。普通XML视图中的press属性将调用相关控制器中的函数。

我们期望以下方法具有相同的行为。因此,handleItemPress是处理程序,将在按下项目后调用。

但如前所说,没有任何事情发生。

我们为新闻事件尝试了不同的符号(绑定此和不绑定):

press: [this.handleItemPress, this]

press: this.handleItemPress

press: "handleItemPress"

他们都没有工作。那么,我们可以做些什么来使该项目的新闻工作?

详情视图:

<IconTabFilter
    icon="sap-icon://attachment"
    key="AttachmentTab"
    text="{i18n>Attachments}">
    <List
        id="AttachmentList"
        includeItemInSelection="true">
    </List>
</IconTabFilter>

细节控制器:

if (evt.getParameter("key") === "AttachmentTab") {      
    var template = new sap.m.StandardListItem({
        title: "{Objecttext}",
        description: "{Filename}",
        icon: {
            path: "Type",
            formatter: sap.ui.prototype.approval.util.Formatter.attachmentIcon
            },
            press: [this.handleItemPress, this]
        });

        this._byId("AttachmentList").bindItems(
            "/Invoices(Bukrs='" + bukrs + "',Belnr='" + belnr + "',Gjahr='" + gjahr + "',EdcObject='" + edcObject + "')/Attachments",
            template
        );
    }
},

handleItemPress : function (evt){
    console.log("The item was pressed");
},

1 个答案:

答案 0 :(得分:1)

选择StandardListItem的type属性。 var template = new sap.m.StandardListItem({ type: "Active", title: "{Objecttext}", description: "{Filename}",