在XML-View中定义了一个MultiInput,如:
<MultiInput
placeholder="Tags"
id="tagInput"
showValueHelp="false">
</MultiInput>
现在需要在Controller中的函数中访问Object。在oninit函数中它起作用:
onInit: function() {
var multiInput = this.getView().byId("tagInput")};
但无法在
等其他功能中访问onInit: function() {
var multiInput = this.getView().byId("tagInput")},
otherFunction: function(){
var view = this.getView(), // is null
multiInput = sap.ui.getCore().byId("tagInput"), // is null
multiInput1 = this.multiInput; // is null
};
我想在OdataRequest的SuccessHandler中使用multiInput,但我无法获得MultiInput-Objekt ......
答案 0 :(得分:0)
this.getView().byId()
与sap.ui.getCore().byId()
不同。第一个解析相对于视图的ID(例如,在您的情况下为 tagInput ),第二个唯一的全局ID。
也许您已经失去了对this
的引用?在javascript中this
在回调函数中丢失了。常见的模式是在事件处理程序之前声明var that = this;
并使用that.getView().byId()
代替。
UI5s attachEvent方法有一个额外的参数来提供在事件处理程序中将成为this
的对象。