我有一个提出请求的服务,
.factory('movieService', ['$http', function($http) {
return {
loadMovies: function() {
return $http.get('/movies_users.json');
}
};
}])
这是JSON输出,是两个表连接的结果。用户表和电影表。如您所见,用户与一部或多部电影相关联。
[
{"id":1,
"email":"peter@peter.nl",
"movies":[
{
"id":4,
"title":"Creed",
movie_id":"312221"
},
{
"id":5,
"title":"Star Wars: Episode VII - The Force Awakens",
"movie_id":"140607"
}
]
},
{"id":2,
"email":"jan@jan.com",
"movies":[
{
"id":4,
"title":"Creed",
movie_id":"312221"
}
]
}
]
然后我在我的控制器中有这个功能,
movieService.loadMovies().then(function(response) {
$scope.movies = response.data;
});
这会将服务中的数据存储到电影范围内。
如果我这样做,
"ng-repeat" => "movie in movies"
ng-repeat显示所有用户添加的所有电影。我如何才能在视图中显示与当前用户关联的电影?
答案 0 :(得分:1)
这似乎是你想要的 - 让我知道它是否有帮助。
请注意,"
上额外movie_id"
肯定没有帮助
angular.module('myApp', [])
.controller('ctrl', function($scope) {
$scope.users = [
{"id":1,
"email":"peter@peter.nl",
"movies":[
{
"id":4,
"title":"Creed",
movie_id:"312221"
},
{
"id":5,
"title":"Star Wars: Episode VII - The Force Awakens",
"movie_id":"140607"
}
]
},
{"id":2,
"email":"jan@jan.com",
"movies":[
{
"id":4,
"title":"Creed",
movie_id:"312221"
}
]
}
];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="ctrl">
<div ng-repeat="user in users">
{{user.email}}
<div ng-repeat="movie in user.movies">
{{movie.title}}
</div>
</div>
<h2>Movies for user 2</h2>
<div ng-repeat="movie in users[1].movies">
{{movie.title}}
</div>
</div>
答案 1 :(得分:0)
在快速谷歌搜索中找到: How do I filter an array with AngularJS and use a property of the filtered object as the ng-model attribute?
$(".upload_button").click(function(event){
event.preventDefault();
$.ajax({
url:'upload',
data:new FormData($("#upload_form")[0]),
dataType:"json",
async:false,
type:"post",
processData: false,
contentType: false,
success:function(response){
alert(response);
}
});
});
编辑:看起来你实际上有一个用户列表,所以你可以对用户的ngrepeat进行过滤,然后你就可以在电影上嵌套ngrepeat(未经过滤,因为它们附在用户身上)。但是,根据您的应用程序实际需要的工作方式,您可以在数据恢复时过滤掉数据并丢弃您不需要的用户。其中介绍了这个问题,您是否可以访问服务器端代码?如果是这样,您可以在那里进行过滤,而不是首先返回与其他用户关联的数据