Javascript AngularJS访问ng repeat中的JSON文件

Javascript AngularJS访问ng repeat中的JSON文件,javascript,json,angularjs,Javascript,Json,Angularjs,在Angular中是否可能出现这种情况,我已经尝试过搜索,但我不知道要搜索的确切术语,所以首先,我道歉 我正在使用Angular成功访问JSON文件 我的JSON文件包含150多个事件的列表,每个事件都有一些基本信息,如图像、标题、价格、事件是否售罄等 每个事件还包含一个指向该事件的JSON文件的URL。 该文件包含关于单个事件的更深入的信息,如位置、难度、轮椅可及性等 如何循环第一个JSON,但仍然提取“嵌入式”的信息?JSON文件,以便在一个页面上显示所有信息 我一直在努力理解如何在ng r

在Angular中是否可能出现这种情况,我已经尝试过搜索,但我不知道要搜索的确切术语,所以首先,我道歉

我正在使用Angular成功访问JSON文件

我的JSON文件包含150多个事件的列表,每个事件都有一些基本信息,如图像、标题、价格、事件是否售罄等

每个事件还包含一个指向该事件的JSON文件的URL。 该文件包含关于单个事件的更深入的信息,如位置、难度、轮椅可及性等

如何循环第一个JSON,但仍然提取“嵌入式”的信息?JSON文件,以便在一个页面上显示所有信息

我一直在努力理解如何在ng repeat中“调用”第二个JSON文件信息

作为一名英语初学者,我努力寻找正确的术语来帮助自己

谢谢

编辑-----

我在这里创造了一个plunkr,这是我努力实现的一部分


#事件列表span{display:block;}
#事件列表li{clear:both;}
#事件列表ul{list style:none;}
#事件列表img{float:left;}
var-app=angular.module(“exampleApp”,[]);
app.controller(“eventCtrl”,函数($scope、$http、$location){
var事件列表=”http://ajax.wiggle.co.uk/api/list/events/?ris=1";
$scope.host=$location.host;
$scope.wiggleEvents=[];
$http({
方法:“JSONP”,
url:eventList+“&callback=JSON\u callback”
}).success(函数(数据、状态、标题、配置){
$scope.wiggleEvents=data.Results.Products;
//数据包含响应
//status是HTTP状态
//headers是header getter函数
//config是用于创建HTTP请求的对象
}).error(函数(数据、状态、标题、配置){
});
});
  • 标题:{p.Title} PID:{p.PID} APIRL:{p.apirl}}
我可以成功地从主JSON文件获取信息,并在页面中显示24个事件

主JSON文件如下所示:

JSON中的每个“产品”都有自己的APIRL,指向自己的JSON文件,该文件包含关于该产品的更多信息

我试图在html中同时输出来自主JSON的一些信息和来自每个IDividualJSON的一些信息

我真的被困在如何访问这些单独的JSON文件中,特别是第一个主文件中可能包含不同数量的“产品”。今天正好是24,但明天可能是36等等


谢谢

假设您拥有以下json对象:

myJsonObj= {
   user: {
       firstname : "jane",  
       lastname : "doe"
   },
   friend: {
       firstname: "hancock",
       lastname : "john"
   }
}
要使用ng repeat迭代对象(您的json对象)的属性,必须使用(键、值)如下:


//显示“用户”,然后显示“朋友”
//显示“jane”
//显示能源部
在此处阅读有关迭代对象属性的详细信息:

编辑: 您还可以通过向作用域函数传递一些数据来完成更多工作。像

<div ng-repeat="(key,value) in myJsonObj">  
    // assuming retrieveUrl() is a scope function you wrote
    // in order to extract and return the url from the data you passed
    // as parameter
    <span ng-bind="retrieveUrl(value.url)"></span>    
</div>  

//假设retrieveUrl()是您编写的作用域函数
//以便从传递的数据中提取并返回url
//作为参数

假设您有以下json对象:

myJsonObj= {
   user: {
       firstname : "jane",  
       lastname : "doe"
   },
   friend: {
       firstname: "hancock",
       lastname : "john"
   }
}
要使用ng repeat迭代对象(您的json对象)的属性,必须使用(键、值)如下:


//显示“用户”,然后显示“朋友”
//显示“jane”
//显示能源部
在此处阅读有关迭代对象属性的详细信息:

编辑: 您还可以通过向作用域函数传递一些数据来完成更多工作。像

<div ng-repeat="(key,value) in myJsonObj">  
    // assuming retrieveUrl() is a scope function you wrote
    // in order to extract and return the url from the data you passed
    // as parameter
    <span ng-bind="retrieveUrl(value.url)"></span>    
</div>  

//假设retrieveUrl()是您编写的作用域函数
//以便从传递的数据中提取并返回url
//作为参数

从嵌套在ng repeat中的数据中的url获取json数据的最佳方法是编写一个运行$http GET的指令。大概是这样的:

html


js:

app.directive('getUrlData',function(){
返回{
限制:'E',
模板:“{vm.jsonData}}”,
范围:{
url:“=?”
},
controllerAs:'vm',
bindToController:对,
控制器:函数($http){
vm=这个;
$http.get(vm.url).then(函数(响应){
vm.jsonData=响应;
});
}
};
});

从嵌套在ng repeat中的数据中的url获取json数据的最佳方法是编写一个运行$http GET的指令。大概是这样的:

html


js:

app.directive('getUrlData',function(){
返回{
限制:'E',
模板:“{vm.jsonData}}”,
范围:{
url:“=?”
},
controllerAs:'vm',
bindToController:对,
控制器:函数($http){
vm=这个;
$http.get(vm.url).then(函数(响应){
vm.jsonData=响应;
});
}
};
});

我设法找到了这个问题的答案。 我在这篇文章中选择了答案:


这是以我理解的方式写的,当我遵循它时,它对我起了作用

我设法找到了这个问题的答案。 我在这篇文章中选择了答案:


这是以我理解的方式写的,当我遵循它时,它对我起了作用

是否可以在gist或pastebin中显示JSON示例,以便更容易为您提供帮助。
<div ng-repeat="thing in things track by $index">
  <get-url-data url="thing"></get-url-data>
</div>
app.directive('getUrlData', function() {
  return {
    restrict: 'E',
    template: '<div>{{vm.jsonData}}</div>',
    scope: {
      url: '=?'
    },
    controllerAs: 'vm',
    bindToController: true,
    controller: function($http) {
      vm = this;
      $http.get(vm.url).then(function(response) {
        vm.jsonData = response;
      });
    }
  };
});