2016-02-01 121 views
2

要開始我創建了一個codepen一個模式,我認爲標題說明了一切。我創建了一個服務來處理我的情態動詞,因爲在這裏看到我有打開第二個模式,不能關閉的第一模式,如果打開然後關閉第二

.service('ModalService', function($ionicModal, $ionicLoading, $rootScope) { 
    var init = function(tpl, $scope) { 
     $ionicLoading.show({ 
     content: 'Loading', 
     animation: 'fade-in', 
     showBackdrop: true, 
     maxWidth: 200, 
     showDelay: 0 
     }); 

     var promise; 
     $scope = $scope || $rootScope.$new(); 
     promise = $ionicModal.fromTemplateUrl(tpl, { 
     scope: $scope, 
     animation: 'slide-in-up' 
     }).then(function(modal) { 
     $scope.modal = modal; 
     return modal; 
     }); 
     $scope.$on('$destroy', function() { 
     $scope.modal.remove(); 
     }); 
     return promise; 
    } 
    return { 
     init: init 
    } 
    }) 

,它被稱爲控制器,像這樣

ModalService.init('modal.html', $scope).then(function(modal) { 
     ...do something.... 
     $ionicLoading.hide(); 
     modal.show(); 
     }); 

問題是,我只能關閉一個模式,第一個或第二,但如果我進入第二,我不能關閉第二。我是否假設當我關閉一個銷燬兩者的模態實例?如果我不想將它分割成不同的控制器,我該如何解決這個問題?

+0

你想第一個模式關閉,然後第二個模態開? ? – dvenkatsagar

+0

我希望他們既能如果我瀏覽到關閉到第二,但是,當我瀏覽到第二和關閉(返回第二),它使第一模態關閉按鈕沒有反應 – garrettmac

+0

使用離子框架沒有IM – garrettmac

回答

1

您指定由$ionicModal.fromTemplateUrl(...).then(modal)功能恢復$ scope.modal modal控制器的所有實例。

二審「覆蓋」的第一個,所以當您關閉第二個,然後嘗試使用隱藏的關閉按鈕(ng-click="modal.hide()"$scope.modal仍然指向到第2第一個...

所以,在您的服務中,您必須爲每個$ ionicModal實例分別存儲模態控制器。 這裏是一個可以編輯代碼:

http://codepen.io/beaver71/pen/dGKBmv

檢查也是這個帖子:How to create two ionic modal in a cordova app? 或者這一個:Ionic Multiple Modals only last showing

+0

這正是我所需要的。感謝您抽出寶貴的時間,再次分享 – garrettmac

+0

感謝您的幫助,但如何使用圖書館時,這項工作模式?我似乎具有任意的則是一個敏感的問題,配製成我在這裏創造了另一個問題這http://stackoverflow.com/questions/35474491/i-created-a-service-to-handle-modals-however-when -clicking內容功能於一個嵌套。再次感謝,你可能知道 – garrettmac

相關問題