archakov06
@archakov06
Frontend-разработчик (ReactJS)

Как отфильтровать в AngularJS объекты с определенным id?

Имеются два ng-repeat с разными массивами.

1. Хранит список категорий.
2. Список товаров.

Следуя выбранному значению из , должны фильтроваться товары по параметру pid

В каждом товаре есть pid. И если я выберу например вторую строку из , то Angular берет из - id который хранится в value="2".

Я бы мог такое на простом js сделать. Но, не хочу костыли всякие придумывать, раз уже использую ангулар.

<select ng-module="selectFilter" data-placeholder="Выберите категорию" name="category-change">
	<option ng-repeat="cat in cats" value="{{cat.id}}">{{cat.title}}</option>
</select>


и товары:

<div onclick="Product.ShowOrder({{product.id}});" id="product-{{product.id}}" class="product" ng-repeat="product in products | filter:selectFilter">
						<div class="product-btns">
							<span onclick="Product.Edit({{product.id}});" class="sprite-icon edit"></span>
						</div>
						<div class="product-image">
							 <img src="{{product.cloud_url}}">
						</div>
						<div class="product-title">{{product.title}}</div>
					</div>


JSON товаров:
[
  {
    "id": "1",
    "parent_id": "1",
    "title": "Вырезка",
    "description": "",
    "price": "679",
    "count": "0",
    "cloud_id": "tuh43zowt9z4ytn2jvop",
    "cloud_url": "tuh43zowt9z4ytn2jvop.jpg"
  },
  {
    "id": "2",
    "parent_id": "3",
    "title": "Ребра",
    "description": "",
    "price": "456",
    "count": "0",
    "cloud_id": "sample",
    "cloud_url": "sample.jpg"
  },
  {
    "id": "3",
    "parent_id": "4",
    "title": "Грудка",
    "description": "курица",
    "price": "500",
    "count": "500",
    "cloud_id": "ymhgwkj618fuyohblsg0",
    "cloud_url": "ymhgwkj618fuyohblsg0.png"
  }
]


JSON категорий:
[
  {
    "id": "6",
    "title": "Говядина"
  },
  {
    "id": "4",
    "title": "Полуфабрикаты"
  },
  {
    "id": "2",
    "title": "Курица"
  },
  {
    "id": "3",
    "title": "Баранина"
  },
  {
    "id": "13",
    "title": "Полезности"
  }
]
  • Вопрос задан
  • 246 просмотров
Решения вопроса 1
astralo
@astralo
для "спасибо" есть кнопка [Нравится]
<select ng-model="selectFilter" data-placeholder="Выберите категорию" name="category-change" ng-options="item as item.title for item in items track by item.id"></select>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы