Javascript AngularJS:混合来自两个JSON文件的数据
对于web应用程序,我使用AngularJS从两个JSON文件加载数据。我可以在HTML中输出这两个文件的数据,但我必须找到一种方法来使用第一个文件(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"
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!