在OpenUI5

时间:2016-11-05 14:17:50

标签: javascript jquery sapui5

我需要OpenUI5的帮助。我在View中创建了按钮,通过单击按钮创建了Dialog窗口并抛出错误,因此我无法继续使用Dialog的功能。

视图中的按钮:

<m:Button text="{i18n>RESULTS_CHANCES_SEND_EMAIL}"
          class="sapUiMediumMarginBegin results-button"
          tap="sendToEmail"
          press="sendToEmail"
          icon="sap-icon://email">

控制器中的功能:

sendToEmail: function() {

    var email = new Dialog({
      title: 'שליחת תוצאות לדוא"ל',
      type: 'Message',
      content: [
        new Input('submitEmailInput', {
          liveChange: function (oEvent) {
            var sText = oEvent.getParameter('value');
            var parent = oEvent.getSource().getParent();

            parent.getBeginButton().setEnabled(sText.length > 0);
          },
          width: '100%',
          placeholder: 'דואר אלקטרוני'
        })
      ],
      beginButton: new Button({
        text: 'שליחה',
        enabled: false,
        icon: 'sap-icon://email',
        press: function () {

          //var sText = sap.ui.getCore().byId('submitEmailInput').getValue();
          //MessageToast.show('Email is: ' + sText);

          // here comes the API request
          email.close();
        }
      }),
      endButton: new Button({
        text: 'סגירה',
        icon: 'sap-icon://decline',
        press: function () {
          email.close();
        }
      }),
      afterClose: function () {
        email.destroy();
      }
    });

    email.open();}

错误:duplicate id

非常感谢!

1 个答案:

答案 0 :(得分:0)

您已将相同的事件处理程序附加到“tap”和“press”事件,因此sendToEmail被调用两次(并且第二次具有相同ID的控件已经存在)...删除“tap”,因为这是折旧的,所以你最终应该:

<m:Button text="{i18n>RESULTS_CHANCES_SEND_EMAIL}"
      class="sapUiMediumMarginBegin results-button"
      press="sendToEmail"
      icon="sap-icon://email">