закрыть модальное окно Alloy UI

Я использовал модальное окно Alloy UI. Код:

YUI().use(
          'aui-modal',
          function(Y) {
            var modal = new Y.Modal(
              {
                bodyContent:'test',
                centered: true,
                headerContent:headerContent,
                modal: true,
                render: '#testModal',
                width: 631,
                id:'modalSource',
                destroyOnHide:true
              }
            ).render();

            modal.addToolbar(
                      [{
                          label: 'Add',
                          on: {
                            click: function() {
                                addData();
                             //modal.hide() works here but i need to close it inside addData..

                            }
                          }
                        },
                        {
                              label: 'Cancel',
                              on: {
                                click: function() {
                                    modal.hide();
                                }
                              }
                            }

                      ]
                    );
          }
        );

Функция addData находится в другом файле js и выполняет вызов Ajax, поэтому мне нужно передать идентификатор модального окна и закрыть его после успешного обратного вызова. У вас есть идеи о том, как получить идентификатор модального окна и использовать там modal.hide. Спасибо

function addData()
{
   $('#modalSource').hide();
}

person user596502    schedule 11.08.2015    source источник
comment
Я попытался назначить идентификатор и использовать jquery внутри функции addData. Он скрывает окно, но не уничтожает полностью.   -  person user596502    schedule 11.08.2015


Ответы (1)


Пройдя несколько руководств по AUI, удалось решить эту проблему. Просто передайте экземпляр модального окна в функцию addData, а затем вызовите метод hide().

modal.addToolbar(
                  [{
                      label: 'Add',
                      on: {
                        click: function() {
                            addData(modal);


                        }
                      }
                    },   



 function addData(modalInstance)
 {
  //do needed stuff
   modalInstance.hide();
 }
person user596502    schedule 12.08.2015