2015-11-04 2 views
0

У меня есть окно ввода в модальном всплывающем окне, я хочу это значение в моем основном контроллере, который вызвал модальный.Как получить значение от модального всплывающего окна углового js

+0

Вы используете 'modal' директиву' Ui-bootstrap' или другого поставщика модальной? –

ответ

0

Легкий способ:

//Modal controller 
$rootScope.$broadcast('modal:nameOfModal:onSave', { data: data }) 

//Any other controller 
$scope.$on('modal:nameOfModal:onSave', function(event, data) { ... }) 

Правильный способ:

  • Modal creator
  • Factory с помощью методов, представляющих каждый модальный тип вам нужно
  • Каждый метод метод Factory (как Factory.confirmationWindow()) возвращая promise, которые должны обрабатываться отдельно в контроллерах, которые поднимаются вверх propriate модальный
  • Зов что-то вроде в контроллере

    Controller.propotype.openModal = function() { 
        ModalsFactory.confirmationModal().then(function(result) { 
         //using result inside of your controller 
         //if clicked ok 
        }).catch(function() { 
         //behavior to be called when modal canceled 
        }); 
    } 
    

Pros:

  1. Полностью разделяет логика
  2. Позволяет определить различное поведение одних и тех же модальностей в разных контроллерах

Минусы:

  1. ModalsFactory будет большой файл
Смежные вопросы