Порядок AngularJS по массиву объектов с вложенными значениями - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть массив таких объектов:

$scope.sortableItems =
[
  {
    name: 'Blue Shirt',
    fields: {Price: 20}
  },
  {
    name: 'Pink Shirt',
    fields: {Price: 80},
  },
  {
    name: 'Orange Shirt',
    fields: {Price: 10},
  }
]

Мне нужно создать поле ng-repeat, в котором можно отсортировать товары по цене от низкой до высокой или от высокой до низкой.

Я пробовал это:

.product(ng-repeat="item in sortableItems | orderBy:fields.Price")

Но это не имело никакого эффекта.

Кроме того, у меня есть еще одна переменная $scope.sortFunction, которая может равняться Price: Low-High или Price: High-Low, конечный результат необходимдля определения значения $scope.sortFunction и сортировки по значению строки.Не уверен, как это сделать с ng-repeat

1 Ответ

0 голосов
/ 24 февраля 2019

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

js

  $scope.getPrice = function(item){
    return item.fields['Price'];
  }

html

<div ng-repeat="item in sortableItems | orderBy:getPrice:false">{{item.fields['Price']}}</div>

.логическое значение, которое вы можете использовать для упорядочивания в формате asc / desc.

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...