Доступ к значению текстовой области в контроллере - PullRequest
0 голосов
/ 02 июля 2019

Я создал пользовательский элемент управления, который отображает текстовую область (среди прочих).

Если нажата кнопка, я хочу получить доступ к текущему значению текстового поля, но не знаю, как это сделать. «this.byId (« cb-input »)», вызываемый в контроллере, возвращает только неопределенное значение.

CustomControl

....
renderer: function ( oRM, oControl ){
 ...
 oRM.write('<textarea id="cb-input"');
 oRM.addClass("cb-input");
 oRM.writeClasses();
 oRM.write(">");
 oRM.write("</textarea>");
 ...
}

Controler

onInit: function( ){
 ...
 var oPage = this.getView().byId("cb");
 var oCustom = new CustomControl({
    messages: "{/data}"
 });
 oPage.addContent(oChat)
}

Ответы [ 2 ]

2 голосов
/ 03 июля 2019

Согласитесь с тарифами - .byId() Методы возврата метода, которым эти идентификаторы назначаются непосредственно во время создания экземпляра.Таким образом, если событие и его метод определены правильно, то при использовании примера тарифа this.byId("myControlId").getValue() //or getter you have defined должно быть возвращено значение.

Другой вариант - определить кнопку в агрегации пользовательского элемента управления и связать событие нажатия с основным методом элемента управления.который запускает событие - и, следовательно, при нажатии кнопки вы можете напрямую получить доступ к значению textarea.

Более того, в OpenUI5 SDK имеется стандартный элемент управления TextArea, поскольку вы не объяснили, зачем вам это нужноПользовательский контроль - может быть, использование стандарта также является жизнеспособным вариантом для вас ?!

Бест, Шанир

1 голос
/ 02 июля 2019

Попробуйте удалить идентификатор, который мы установили во время создания пользовательского элемента управления, и задать и идентификатор для пользовательского элемента управления во время создания экземпляра, после чего вы можете получить свой собственный элемент управления byId и получить значение.

      onInit: function( ){
 ...
 var oPage = this.getView().byId("cb");
 var oCustom = new CustomControl({
    id : "myControlId"
    messages: "{/data}"
 });
 oPage.addContent(oCustom)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...