Как вы можете видеть ниже, это мой файл данных формата JSON.AngularJS - Пользовательский фильтр для многомерного массива
Вы также можете увидеть, что есть объект root, называемый серверами, который содержит два массива.
В этом массиве есть еще один массив: игроков.
data.json
{ "servers" : [ { "age" : 44,
"mapname" : "Las Venturas",
"num" : 1,
"online" : true,
"players" : [ { "admin" : false,
"cop" : true,
"id" : 2,
"level" : 10,
"name" : "MariusTudor77",
"registered" : true,
"since_connect" : 3545,
"skill" : "Police Officer",
"spawned" : true
},
{ "admin" : false,
"cop" : false,
"id" : 3,
"level" : 0,
"name" : "bananasinpajamas",
"registered" : true,
"since_connect" : 6726,
"skill" : "Hitman",
"spawned" : true
},
{ "admin" : false,
"cop" : false,
"id" : 4,
"level" : 0,
"name" : "Milka2005Hewew",
"registered" : false,
"since_connect" : 177,
"skill" : "Pick Pocket",
"spawned" : true
}
],
"worldtime" : "11:00"
},
{ "age" : 44,
"mapname" : "Los Santos",
"num" : 2,
"online" : true,
"players" : [ { "admin" : false,
"cop" : false,
"id" : 0,
"level" : 0,
"name" : "[_tayyab_]",
"registered" : true,
"since_connect" : 4063,
"skill" : "Car Jacker",
"spawned" : true
},
{ "admin" : false,
"cop" : false,
"id" : 2,
"level" : 10,
"name" : "furkan",
"registered" : false,
"since_connect" : 1750,
"skill" : "Mechanic",
"spawned" : true
}
],
"worldtime" : "11:00"
}
]}
На моем сайте я загружаю этот файл из экстерна URL с помощью HTTP из угловых (локальной для температуры).
Чтобы показать игроков из массива [0] и [1], я использую concat для их смешивания.
$http.get("api/players.php")
.then(function (res) {
vm.s1 = res.data.servers[0];
vm.s2 = res.data.servers[1];
vm.players = vm.s1.players.concat(vm.s2.players);
vm.loading = false;
});
Вот моя петля, где я перечисляю этот vm.players.
<li ng-if="vm.players.length" ng-repeat="player in vm.players | filter: search | orderBy: 'name'">
<a href="#">{{ player.name }} ({{ player.id }})</a>
</li>
На моем сайте у меня есть четыре галочки.
- Сервер 1 (Переполнение не должно перечислить массив [0])
- Сервер 2 (Переполнение не должно перечислить массив [1])
- Игроков (Переполнение не должно перечислить админ: ложный)
- Админ (Переполнение не должны перечислить админа: истинный)
<input type="checkbox" ng-model="vm.checkbox.s1"> Server 1
<input type="checkbox" ng-model="vm.checkbox.s2"> Server 2
<input type="checkbox" ng-model="vm.checkbox.player"> Players
<input type="checkbox" ng-model="vm.checkbox.admin"> Admins
Я не знаю, как это сделать. Я попытался создать собственный фильтр, но не работал.
Или, если вы знаете лучший способ, разместите его здесь.
Пожалуйста создайте plunker с некоторыми фиктивными данными –
Здесь https://embed.plnkr.co/5iZk3f4jyZk3K6i8ebbp/ сделать окно больше, чтобы увидеть боковую панель. Это отзывчиво. – enucar