Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS:混合来自两个JSON文件的数据_Javascript_Json_Angularjs - Fatal编程技术网

Javascript AngularJS:混合来自两个JSON文件的数据

Javascript AngularJS:混合来自两个JSON文件的数据,javascript,json,angularjs,Javascript,Json,Angularjs,对于web应用程序,我使用AngularJS从两个JSON文件加载数据。我可以在HTML中输出这两个文件的数据,但我必须找到一种方法来使用第一个文件(posts.json)中的数据来处理第二个文件(users.json) posts.json示例: { "title": "Some topic", "thread_id": 111, "messages": [ { "user_id": 123, "message": "Hello, I'm Jim"

对于web应用程序,我使用AngularJS从两个JSON文件加载数据。我可以在HTML中输出这两个文件的数据,但我必须找到一种方法来使用第一个文件(
posts.json
)中的数据来处理第二个文件(
users.json

posts.json
示例:

{
  "title": "Some topic",
  "thread_id": 111,
  "messages": [
    {
      "user_id": 123,
      "message": "Hello, I'm Jim"
    },
    {
      "user_id": 987,
      "message": "Hi Jim, I'm Bob"
    },
  ]
}
[
  {
    "123": {
      "name": "Jim",
      "location": "London",
      "website": "http://j.im"
    }
  },
  {
    "987": {
      "name": "Bob",
      "location": "New York",
      "website": "http://b.ob"
    }
  }
]
users.json的示例:

{
  "title": "Some topic",
  "thread_id": 111,
  "messages": [
    {
      "user_id": 123,
      "message": "Hello, I'm Jim"
    },
    {
      "user_id": 987,
      "message": "Hi Jim, I'm Bob"
    },
  ]
}
[
  {
    "123": {
      "name": "Jim",
      "location": "London",
      "website": "http://j.im"
    }
  },
  {
    "987": {
      "name": "Bob",
      "location": "New York",
      "website": "http://b.ob"
    }
  }
]
一个简单的HTML示例如下所示:

<p ng-repeat="talk in talks.messages">{{talk.name}} says {{talk.message}}</p>

可以在控制器或指令中生成映射对象。比如:

.directive('myDirective', function($scope, _) {
  $scope.posts = /* load your posts */
  $scope.users = /* load your users */
  $scope.usersById = _.indexBy($scope.users, 'id')
})
然后在模板中使用它,如:

<p ng-repeat="talk in talks.messages">
  {{talk.title}} by {{usersById[talk.user_id].name}}
</p>

{{talk.title}}由{{usersById[talk.user_id].name}


当我调整我的
users.json
(请参阅)时,这会起作用,但使用上面给出的结构会起作用。我不一定介意改变结构,但我希望我的结构更快,因为我只需要加载与帖子匹配的用户。PS:您可能应该提到您的解决方案需要下划线.js!