我有一个典型的Controller和一个JS-View。
在视图中,我使用工厂函数来构建这样的项目列表:
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 () {
...
}
问题:在View从路径“/ PathToServiceApp”获取数据之前调用onAfterRendering
。
知道如何在加载数据并创建DOM元素后调用onAfterRendering
吗?
答案 0 :(得分:1)
onAfterRendering
将在每次渲染后调用。
在函数中,如果模型异步加载数据,则在加载数据之前可能会发生一次渲染,因此您不能指望存在的数据。
如果绑定中使用的路径数据(在您的情况下为/PathToServiceApp
)发生更改,则绑定中的控件将被刷新,并且将再次调用onAfterRendering
。
如果要在渲染后修改列表项,则应该挂钩onAfterRendering
函数而不是Controller函数。
答案 1 :(得分:0)
基于ListBase
的控件具有UpdateFinished
事件,该事件在控件更新和处理项绑定后触发。如果要在List
中加载数据后运行代码,最好将此事件挂钩到该逻辑。