openui5 getBinding()返回undefined

时间:2015-08-18 16:35:05

标签: javascript sapui5

我正在尝试收听一个事件,表明自定义控件的聚合绑定已更改。

我的目标是找到与聚合关联的绑定对象,并为其附加处理程序。

我知道绑定发生在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中的信息,处理编辑等。

1 个答案:

答案 0 :(得分:0)

希望这对你有所帮助。

http://jsbin.com/qagani/edit?html,js,output

绑定与托管对象更相关,而不是控制自身。