2016-09-02 6 views
0

У меня есть вопрос о том, как я могу получить данные из контроллера и поместить его в рамки другого контроллера, который модальное окно ...Как работать с данными с другого контроллера в модальном окне?

поясню:

вот мое событие, которое открывает диалоговое окно (угловой ремень модальный):

openDialog() { 
    this.$modal({ 
     show: true, 
     html: true, 
     placement: 'center', 
     type: 'large', 
     templateUrl: 'tmpl.html', 
     controller: myController 
    }); 
} 

это мой модальное шаблон окна (tmpl.html):

<div class="modal-body" id="modal-body"> 
    <my-directive></my-directive> 
</div> 

как я использую веб пакет, я инициализировать модуль с моей директивой в основном index.js

вот небольшой пример моего шаблона директивы:

<span class="some-name">{{$ctrl.num}} </span> 

вот мой другой контроллер:

constructor($scope) { 
    super($scope); 

    this.$scope = $scope; 

    this.num = 10; 
} 

Итак, как вы можете видеть, в промежутке будет 10, мне также необходимо получить данные от другого контроллера, который хранит данные = ['asd', 'apple']; и т. д.

есть ли лучше сделать это?

ответ

0

Если я правильно понял ваш вопрос, вы можете передать область действия от родительского контроллера к модальному, добавив область действия в ваши модальные параметры. См. Ниже:

this.$modal({ 
     show: true, 
     html: true, 
     placement: 'center', 
     type: 'large', 
     templateUrl: 'tmpl.html', 
     controller: myController, 
     scope: $scope 
    }); 

Это все, что вы спрашиваете?

+0

уверен, я пробовал , но это совсем не помогло = ( – Costa

+0

: {{$ ctrl.num}}, показывающий 10? Я не мог t ell от вашего вопроса. – defaultcheckbox

+0

да, он показывает 10 – Costa

0

Вы можете использовать resolve свойство из modal

OpenDialog() {

this.$modal({ 
     show: true, 
     html: true, 
     placement: 'center', 
     type: 'large', 
     templateUrl: 'tmpl.html', 
     controller: myController, 
     resolve : { 
      objData{ 
      dataFromCtrl : $scope.dataFromAnoterCtrl// you can fetch data here either from parent scope or factory/service. 
     } 
     } 

    }); 
} 

, а затем в myController, вы можете получить эти данные

.controller('myController',function(objData){ 
    console.log(objData.dataFromCtrl); // you can get data from another controller in this modal controller. 
}) 
+0

благодарим вас за ответ, но мне нужно обновить эти данные, потому что он загружается с сервера с некоторым интервалом времени (потому что данные могут быть обновлены в любое время) ... И это будет обновлять его только при открытии окна снова – Costa