2016-04-15 2 views
0

Как мне позвонить openAddCardModal() в ModalController от PopupController?Открытый ионный модальный от ионного всплывающего окна

function PopupController($scope, $ionicPopup, $timeout, $state) { 
    $scope.showPaymentOptionsPopup = function() { 
     $ionicPopup.confirm({ 
      title: 'Payment Options', 
      cssClass: 'popup-vertical-buttons', 
      buttons:[  
      { 
       text: "Add", 
       type: 'button-positive', 
       onTap: function(){ 
        // call openAddCardModal(); 
       } 
      }, 
      { 
       text: "Edit", 
       type: 'button-positive', 
       onTap: function(){ 
       } 
      }, 
      { 
       text: "Close", 
       type: 'button-dark', 
       onTap: function(){ 
       } 
      } 
      ] 
     }); 
    }; 
} 

function ModalController($scope, $ionicModal, $stateParams) { 
    // addCardModal() 

    $ionicModal.fromTemplateUrl('views/payment-add-card.view.html', { 
     scope: $scope, 
     animation: 'slide-in-up' 
    }).then(function(modal) { 
     $scope.addCardModal = modal; 
    }) 

    $scope.openAddCardModal = function() { 
     $scope.addCardModal.show() 
    } 

    $scope.closeAddCardModal = function() { 
     $scope.addCardModal.hide(); 
    }; 

    $scope.$on('$destroy', function() { 
     $scope.addCardModal.remove(); 
} 

ответ

1

Используйте AngularJS Service установить Communiaction между контроллерами

Прочитайте это: Communicate with controllers in angular js

Ваша служба может выглядеть следующим образом:

function ServiceName(){ 
    var serviceFunction; 

    return { 
     set: function(funcFromCtrl){ 
      serviceFunction = funcFromCtrl; 
     }, 
     call: function(){ 
      serviceFunction(); 
     } 
    } 
}) 

и контроллеры:

function PopupController($scope, $ionicPopup, $timeout, $state, ServiceName) { 
    ... 
     onTap: function(){ 
      ServiceName.call(); 
     } 
    ... 
} 

function ModalController($scope, $ionicModal, $stateParams, ServiceName) { 
    ... 
     ServiceName.set($scope.openAddCardModal); 
    ... 
} 
+0

Спасибо. Я пробовал это и продолжаю получать следующую ошибку: http://imgur.com/PYVQMLG. Мой код находится здесь: http://pastebin.com/WAECu4r2. Строка 113 - 'call: function() { serviceFunction(); } ' – methuselah

+0

Вы не вводили свой сервис для контроллеров зависимостей: ' функции PopupController ($ области видимости, $ ionicPopup, $ таймаут, $ состояния, ModalPopupCommunicationService) {......} ' –

+0

Жаль, что я забыл добавить те, что относятся к пастебину. Я уже это сделал - функция PopupController ($ scope, $ ionicPopup, $ timeout, $ state, ModalPopupCommunicationService) 'и' функция ModalController ($ scope, $ ionicModal, $ stateParams, ModalPopupCommunicationService) '. Их включение не отменяет сообщение об ошибке. – methuselah

Смежные вопросы