我有一个典型的控制器和一个JS视图。

在视图中,我使用了工厂函数来构建如下的项目列表:

new sap.m.List(this.createId("myList"), {
    noDataText: "{i18n>textNoData}",
    items: {
        path: "/PathToServiceApp",
        sorter: new sap.ui.model.Sorter("Date"),
        factory: this.itemFactory.bind(this)
    }
});

this.itemFactory: function (sId, oContext) {
    ...
},


在Controller中,我使用了onAfterRendering实时循环方法:

onAfterRendering: function () {
    ...
}


问题:onAfterRendering在视图从路径“ / PathToServiceApp”获取数据之前被调用。

知道如何在加载数据和创建DOM元素后调用onAfterRendering吗?

最佳答案

每次渲染后将调用onAfterRendering

在该函数中,您不能指望那里的数据,因为如果模型异步加载数据,则在加载数据之前可能会进行一次渲染。

如果绑定中使用的路径的数据(在您的情况下为/PathToServiceApp)发生更改,则绑定中的控件将被刷新,并且onAfterRendering将再次被调用。

如果要在显示列表项后对其进行修改,则应使用其onAfterRendering函数而不是Controller控件。

关于javascript - 加载数据 View 之前的onAfterRendering调用,使用工厂,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36202716/

10-12 06:47