【发布时间】:2016-09-21 13:58:59
【问题描述】:
我正在构建某种在线课程库,我现在正在将数据库数据模拟为JSON 文件。我试图做的是在ng-repeat 中显示用户已获得的课程。我有两个JSON 文件,一个用于用户,另一个用于课程,我想知道如何交叉引用这两个文件以显示我想要的数据。
我有两个 JSON 文件的数据存储在两个变量中,如下所述:
//load user data
$http.get("users.json")
.then(function mySuccess(response){
$scope.appUsers = response.data;
}, function myError(response){
console.log("Error loading user data!");
});
//load course data
$http.get("courses.json")
.then(function mySuccess(response){
$scope.appCourses = response.data;
}, function myError(response){
console.log("Error loading course data!");
});
来自两个 JSON 文件(courses.json 和 users.json)的数据如下所示:
users.json
[{
"username": "user1",
"password": "123456",
"name": "Joe",
"courses": [{"id": 1}, {"id": 2}, {"id": 3}, {"id": 4}, {"id": 5}, {"id": 6}, {"id": 7}, {"id": 8}]
}, {
"username": "user2",
"password": "654321",
"name": "Jane",
"courses": [{"id": 2}, {"id": 4}, {"id": 5}, {"id": 7}]
}]
courses.json
[{
"id": 1,
"name": "Web Design",
"image": "images/portfolio/p1.jpg",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam et faucibus metus, ac efficitur felis.",
"price": "35€"
}, {
"id": 2,
"name": "Photoshop Level 1",
"image": "images/portfolio/p2.jpg",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam et faucibus metus, ac efficitur felis.",
"price": "35€"
}, {
"id": 3,
"name": "Game Design",
"image": "images/portfolio/p3.jpg",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam et faucibus metus, ac efficitur felis.",
"price": "35€"
}, {
"id": 4,
"name": "Photography Level 1",
"image": "images/portfolio/p4.jpg",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam et faucibus metus, ac efficitur felis.",
"price": "35€"
}, {
"id": 5,
"name": "Web Design Masters",
"image": "images/portfolio/p5.jpg",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam et faucibus metus, ac efficitur felis.",
"price": "35€"
}, {
"id": 6,
"name": "Photoshop Level 2",
"image": "images/portfolio/p6.jpg",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam et faucibus metus, ac efficitur felis.",
"price": "35€"
}, {
"id": 7,
"name": "Game Design Masters",
"image": "images/portfolio/p7.jpg",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam et faucibus metus, ac efficitur felis.",
"price": "35€"
}, {
"id": 8,
"name": "Photography Level 2",
"image": "images/portfolio/p1.jpg",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam et faucibus metus, ac efficitur felis.",
"price": "35€"
}]
我有这个带有ng-if 的ng-repeat 标签来模拟“user1”已登录:
<div ng-repeat="course in appCourses" ng-if="appUsers[0].username == 'user1'">...</div>
现在我错过了只显示 user1 拥有的课程的我应该做的事情。
谢谢。
【问题讨论】:
-
是
users.json你生成/可以改变的东西吗? -
是的,我自己写的,暂时都是虚拟数据。
-
而不是
[{"id": 1}, {"id": 2}...],只需使用一组ID:[1, 2...],这已经让它变得容易多了。
标签: javascript angularjs json ng-repeat angular-ng-if