首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Angular中,如何将JSON对象/数组传入指令?

在Angular中,如何将JSON对象/数组传入指令?
EN

Stack Overflow用户
提问于 2014-02-10 09:26:13
回答 3查看 101.1K关注 0票数 52

目前,我的应用程序有一个控制器,它接受一个JSON文件,然后使用"ng-repeat“遍历它们。这一切都很好用,但是我还有一个指令需要遍历相同的JSON文件。这带来了一个问题,因为我不能在一个页面上请求相同的JSON文件两次(我也不想这样做,因为这样效率会很低)。如果我更改了其中一个JSON文件的文件名,那么指令和控制器都可以请求和迭代JSON数据。

我想知道的是:将控制器的JSON请求形成的数组传递到指令中的最佳方法是什么?当我已经通过我的控制器访问数组时,我如何将数组传递到我的指令中并遍历它?

控制器

代码语言:javascript
复制
appControllers.controller('dummyCtrl', function ($scope, $http) {
   $http.get('locations/locations.json').success(function(data) {
      $scope.locations = data;
   });
});

HTML

代码语言:javascript
复制
<ul class="list">
   <li ng-repeat="location in locations">
      <a href="#">{{location.id}}. {{location.name}}</a>
   </li>
</ul>
<map></map> //executes a js library

指令(当我使用locations.json以外的文件名时有效,因为我已经请求过一次

代码语言:javascript
复制
.directive('map', function($http) {
   return {
     restrict: 'E',
     replace: true,
     template: '<div></div>',
     link: function(scope, element, attrs) {

$http.get('locations/locations.json').success(function(data) {
   angular.forEach(data.locations, function(location, key){
     //do something
   });
});
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21667613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档