我创建了一个正在渲染文本区域(以及其他区域)的自定义控件。
如果单击按钮,我想访问文本框的当前值,但不知道该怎么做。在 Controller 中调用的“this.byId(“cb-input”)”仅返回未定义。
自定义控件
....
renderer: function ( oRM, oControl ){
...
oRM.write('<textarea id="cb-input"');
oRM.addClass("cb-input");
oRM.writeClasses();
oRM.write(">");
oRM.write("</textarea>");
...
}
Controller
onInit: function( ){
...
var oPage = this.getView().byId("cb");
var oCustom = new CustomControl({
messages: "{/data}"
});
oPage.addContent(oChat)
}
最佳答案
同意 fareslt -.byId()
方法返回在实例化期间直接分配这些 Id 的控件。因此,如果事件及其方法定义正确,则使用 fareslt 示例 this.byId("myControlId").getValue()//or getter you have Defined
应返回该值。
其他选项是在自定义控件的聚合中定义按钮,并将按下事件绑定(bind)到触发该事件的主 Control 方法 - 因此,通过单击按钮,您可以直接访问 textarea 值。
而且,还有标准TextArea control available in OpenUI5 SDK ,因为您还没有解释为什么需要自定义控件 - 也许使用标准对您来说也是一个可行的选择?!
最好, 沙尼尔
关于javascript - 访问 Controller 中的文本区域值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56852834/