2013-04-06 4 views
-1

Я не уверен, могу ли я сделать это или есть лучший способ. Мне нужен кто-то, чтобы вести меня.AngularJS как передавать данные с одного контроллера на разные директивы

Я создал два шаблона с использованием директивы (обе директивы на той же странице). Пусть говорят

  • directiveVideo для отображения видео
  • directivePhoto для отображения фотографий

Тогда у меня есть контроллер. этот контроллер запрашивает два разных данных, видео и фотографии. Мой вопрос, как я могу передать видеоданные для отображения в directiveVideo и данные фото в directivePhoto

ответ

2

Ваш вопрос невероятно туманны, так что я дам столь же расплывчатый ответ. Если вам нужно что-то более конкретное, вам нужно будет отредактировать свой вопрос, чтобы включить некоторый код - желательно в Plunker.

Если ваш контроллер объявляет два сферы вары, videos и photos, то вы можете просто передать их в качестве атрибутов к вашим директивам:

<div photos="photos"></div> 
<div videos="videos"></div> 

И вы можете прочитать в из вашей директивы. Предполагая, что у вас есть изолят объем:

scope: { photos: '=' } 

В противном случае:

scope: true, 
link: function (scope, element, attrs) { 
    attrs.$observe('photos', function (val) { 
    $scope.photos = val; 
    }); 
} 

И ваш шаблон может получить к нему доступ, однако он должен:

<ul> 
    <li ng-repeat="photo in photos"><img ng-src="{{photo.url}}" /></li> 
</ul> 
+0

Извините за мой вопрос, потому что я не пробовал это я сам, поэтому я совсем размываюсь. Я попрошу или обновит его снова, когда попытаюсь. – vzhen