Как получить текст RadioButton в контроллере без использования RadioButtonGroup? - PullRequest
0 голосов
/ 02 апреля 2020

мой взгляд:

<FlexBox
    alignItems="Start"
    justifyContent="SpaceBetween">
      <m:HBox alignItems="Stretch">
        <l:VerticalLayout>
          <m:RadioButton id="rb-Yes" text="Quotation" select="changeKdsr" selected="true"/>
        </l:VerticalLayout>
      </m:HBox>
      <m:HBox alignItems="Stretch"> 
        <l:VerticalLayout>
          <m:RadioButton id="rb-No" text="material" select="changeKdsr"/>
        </l:VerticalLayout>
      </m:HBox>
    </FlexBox>

контроллер:

changeKdsr: function (e) {

        var rbText = e.getSource().mProperties.text; //this returns previously selected button text
    }

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

1 Ответ

3 голосов
/ 02 апреля 2020

У вас есть две кнопки RadioButton. Если вы выберете один, оба будут изменены (один выбран, другой отменен). Два изменения означают два события. Таким образом, changeKdsr вызывается дважды.

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

changeKdsr: function (oEvent) {
    if (oEvent.getParameter("selected")) {
        const oSource = oEvent.getSource();
        const sText = oSource.getText();

    }
}
...