2015-08-11 9 views
1

Я использовал окно сплава UI Modal. Код:close Alloy UI modal window

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(); 
} 
+0

Я пробовал с назначением id и использованием jquery внутри функции addData. Он скрывает окно, но не уничтожает его полностью. – user596502

ответ

0

После прохождения через некоторые учебники AUI, удалось решить it..Just передать экземпляр модального окна в AddData функции и затем вызвать метод скрыть().

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


         } 
         } 
        }, 



function addData(modalInstance) 
{ 
    //do needed stuff 
    modalInstance.hide(); 
}