AngularJS如何将数据从一个控制器传递到不同的指令

时间:2013-04-06 19:24:31

标签: angularjs angularjs-directive angularjs-controller

我不确定我是否可以这样做,或者有更好的方法。我需要有人来指导我。

我创建了两个模板using指令(同一页面中的两个指令)。 让我们说

  • 显示视频的directiveVideo
  • 显示照片的directivePhoto

然后我有一个控制器。该控制器请求两个不同的数据,视频和照片。 我的问题是,我如何传递视频数据以在directiveVideo和照片数据中显示 directivePhoto

1 个答案:

答案 0 :(得分:2)

你的问题非常模糊,所以我会给出一个同样模糊的答案。如果你想要更具体的东西,你需要编辑你的问题以包含一些代码 - 最好是在Plunker中。

如果您的控制器声明了两个范围变量videosphotos,那么您可以将它们作为属性传递给您的指令:

<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>