2016-04-13 19 views
0

Üzgünüm. IONIC'de başlangıç ​​yapıyorum, bir uygulamada modal servis kullanacağım. bu yüzden sadece şablon url'yi değiştirebilir miyim? modal gösterilir, ancak closeModal() işleviyle modalı kapatamıyorum. İşte benim fabrikam. Bir denetleyici olarakIONIC'de Modal Hizmeti Nasıl Yapılır?

.factory('ModalSvc',function($ionicModal, $rootScope){ 
    return { 
     setModalView : function(url) { 
      $ionicModal.fromTemplateUrl(url, { 
       scope: $rootScope 
      }).then(function(modal) { 
       $rootScope.modal = modal; 
      }); 
     }, 
     openModal : function() { 
      $rootScope.modal.show(); 
     }, 
     closeModal : function() { 
      $rootScope.modal.hide(); 
     } 
    } 
}); 

:

ModalSvc.setModalView('templates/popup-search-order.html'); 
    $rootScope.openModel = function() { 
     ModalSvc.openModal(); 
    }; 
    $rootScope.hideModel = function() { 
     ModalSvc.closeModal(); 
    }; 

Sorun ne? ve modal görünümü kapatmak için ne var ... Bu olası bir sorun. Yani, bazı model görünümleri yerine kalıcı bir iletişim hizmetini kullanabilirim ...? Önceden teşekkür ederiz. Saygılarımızla

cevap

0

Şu an üzerinde çalıştığım uygulamalarla çok şey yapıyorum. Derinlemesine anlamanız gereken birkaç genel açısal kavram vardır; 1, $ q kullanarak Promises ve diğeri kapsamları ve $ rootScope kullanarak tüm gotchas. Bu araştırmayı kendi başınıza yapmanıza izin verirken ya da parmaklarınızı kullanıp tekrar yaktığınızı öğrenirsiniz (muhahahahaha) Aşağıdaki kodlara bakınız. Bu

<ion-modal-view> 
    <ion-header-bar class="bar-positive"> 
     <button class="button button-clear button-icon icon ion-close-round" ng-click="cancelModal()"></button> 
     <h1 class="title">Modal Title</h1> 

    </ion-header-bar> 
    <ion-content has-header="true"> 

    </ion-content> 
</ion-modal-view> 
+0

Yardımlarınız için çok teşekkür ederim gibi

.factory('ModalSvc',function($ionicModal, $rootScope, $q){ return { setModalView : setModalView } function setModalView(url) { var def = $q.defer(); var modalScope = $rootScope.$new(); modalScope.cancelModal = cancelModal; $ionicModal.fromTemplateUrl(url, { scope: modalScope }).then(function(modal) { modalScope.modal = modal; modalScope.modal.show(); }); function cancelModal() { modalScope.modal.hide(); modalScope.modal.remove(); // you can resolve the result of the modal here def.resolve(); } return def.promise; } }); 

Sen html sonra görünebilir. –

+0

Modalı nasıl açabilirim? –

+0

Kodu düzenledim, daha sonra geri aramada modal.show() ekledim –

İlgili konular