2014-09-19 3 views
1

Я использую UI-маршрутизатор с $ модальных и мой набор вверх, как это в моей странице маршрутизации:Угловое доступа модальный родительский контроллер

.state('resourcesControl.resource.dataStuff', { 
     url: "/:resourceId/dataStuff", 
     onEnter: ['$stateParams', '$state', '$modal', '$timeout', 'resourceService', function($stateParams, $state, $modal, $timeout, resourceService){ 

      var modalInst = $modal.open({ 
       templateUrl: "templates/dataStuff.html", 
       windowClass: 'data-modal', 
       controller: 'dataStuffCtrl' 
      }); 

      modalInst.result.then(function(){ 

      }, function(){ 
       $state.go('resourcesControl.resource'); 
      }); 
     }] 
    }) 

Мое понимание с маршрутизатором UI является то, что все дочерние состояния имеют доступ к контроллерам их родителей и переменным объема. Теоретически мой dataStuffCtrl должен иметь доступ к ресурсам и ресурсам контроллеров управления и их областей.

Однако, когда я обертываю фигурные скобки вокруг родительского объекта сферы в представлении dataStuff, ничего не отображается. Есть ли способ обойти это? Я помню, как другие люди публиковали о родительских контроллерах с модальным, но я не могу найти их на SO atm.

ответ

1

Проблема в том, что модальный сервис добавляет элемент в конец документа. Таким образом, он не сидит в вашей иерархии областей и вместо этого является только потомком $ rootScope. У вас есть несколько вариантов.

  1. передают данные контроллера модальности через $ rootScope или широковещательные/испускает событие (грязный)
  2. Проденьте модальную рамку вы хотите использовать в качестве части modal.open вариантов объекта с помощью рамки имущество. (Вы можете вызвать $scope.$new(), чтобы вручную создать дочернюю область).
  3. Используйте свойство solve для объекта modal.open options, чтобы передать данные, которые необходимо ввести в контроллер модалов, так же как и разрез углового маршрута.
Смежные вопросы