我正在尝试收听一个事件,表明自定义控件的聚合绑定已更改。
我的目标是找到与聚合关联的绑定对象,并为其附加处理程序。
我知道绑定发生在onBeforeRendering中,所以我添加了一个onAfterRendering函数,该函数被成功调用
然而 this.getBinding(" _myAggregation")仍未定义,因此我无法附加任何事件处理程序。代码大纲如下:
sap.ui.core.Control.extend("myControl",
{
metadata : {
properties : {
...
},
aggregations : {
_myAggregation : {
type : "myInnerControl",
multiple : false
}
},
events : {
...
}
},
init : function() {
var self = this;
self.setAggregation("_myAggregation", new myInnerControl.bindElement("queryModel>"));
},
onAfterRendering : function(oEvent) {
if (sap.ui.core.Control.prototype.onAfterRendering) {
sap.ui.core.Control.prototype.onAfterRendering.apply(this, arguments);
}
this.getBinding("_myAggregation").attachChange(function() {
alert("model change");
});
},
renderer : function(oRm, oControl) {
...
}
});

我使用的是openui5版本1.28.15 该应用程序另有工作:正确呈现JSONModel中的信息,处理编辑等。