Ориентация на определенные элементы данных с определенным ключом с помощью ng-repeat - PullRequest
0 голосов
/ 29 мая 2018

У меня есть объект JSON, подобный следующему:

{
   "name": "cameraasd_main_autofocus",
   "value": "Lasasd autofocus",
   "displayName": "Autofocus"
 },
{
   "name": "screen_siasdze",
   "value": "5.2\asd",
   "displayName": "Sdascreen Size",
   "group": "General"
},
{
   "name": "camera_maindas_features",
   "value": "Digital Zoom,das Auto Flash, Digital image stabilization"
   "displayName": "Features"
},

В этом объекте данных я хочу нацелиться только на элемент, имеющий атрибут group с ng-repeat.И я должен далее сгруппировать элементы с определенной группой.Например, от всего объекта элементы со значением группы "General" должны быть отделены от остальных элементов.

Ответы [ 4 ]

0 голосов
/ 29 мая 2018

Проверьте этот код.

<div>
        <h3>With Group</h3>
        <div ng-repeat="d in data">
            <div ng-if="d.group">
                {{d.name}}
            </div>
        </div>
    </div>

    <div>
        <h3>Without Group</h3>
        <div ng-repeat="d in data">
            <div ng-if="!d.group">
                {{d.name}}
            </div>
        </div>
    </div>
0 голосов
/ 29 мая 2018

Предположим, что ваш JSON содержит массив (который не отображается в вашем json, но я предполагаю, что он есть).Сначала проанализируйте ваш JSON в JsonObject, затем получите его в виде массива

JSONArray jsonArray = new JSONArray(jsonString);

Затем вы можете сделать это в своем html

<div ng-repeat="elem in jsonArray">
   <a ng-if="elem.group">{{ elem.property }}</a>
</div>
0 голосов
/ 29 мая 2018

Вы можете создать переменную области видимости для хранения отфильтрованных элементов, имеющих свойство "группа", как показано ниже

var data = [{
   "name": "cameraasd_main_autofocus",
   "value": "Lasasd autofocus",
   "displayName": "Autofocus"
 },
{
   "name": "screen_siasdze",
   "value": "5.2asd",
   "displayName": "Sdascreen Size",
   "group": "General"
},
{
   "name": "camera_maindas_features",
   "value": "Digital Zoom,das Auto Flash, Digital image stabilization",
   "displayName": "Features"
}];

$scope.filteredData = data.filter(function(x){ return x.hasOwnProperty("group")});

, а затем использовать ng-repeat в пользовательском интерфейсе

<ul>
    <li ng-repeat="item in filteredData">
      {{item.name}} || {{item.value}} 
    </li>
</ul>

Здесьрабочий образец: https://jsfiddle.net/Lt7aP/8267/

Редактировать: Если вы хотите выделить элементы на основе конкретного имени группы, вы можете попробовать следующий код

$scope.filteredData = data.filter(function(x){ return x.hasOwnProperty("group") && x.group == "General"}); 

в этом случае будут отображаться только General группы.

0 голосов
/ 29 мая 2018
<div ng-repeat="x in records">
    <div ng-if="x.group"> {{x.name}} </div>
</div>

попробуйте, если это работает !!Удачи!

...