Передайте выбранные значения контроллеру и отсортируйте в AngularJS [duplicate]

Новый для Углового, пожалуйста, помогите! Я просмотрел интернет и не смог найти ответ, который имеет смысл для моего нового мозга. Это все использует только AngularJS, не машинопись или CLI.

У меня есть список элементов в массиве. У меня есть список вариантов во втором массиве. Я хочу, чтобы пользователь мог выбирать параметры во втором массиве, а затем сортировать элементы в первом массиве по тому, что было выбрано во втором массиве. И я просто не могу понять, как это сделать.

Мой index.html:

<div class="main" ng-controller="MainController">
    <div class="card" ng-repeat="listing in listings | orderBy:'number'">
        <h2 class="title">{{ listing.number }}: {{ listing.title }}</h2>
        <p class="status">
            <select ng-model="selectedlstStats"
                    ng-options="item for item in lstStats">
             </select> <!--This is the drop down where they choose Have or Want-->            
        </p>
    </div>        
    <div class="card">
        <select ng-model="sortlstStats" ng-options="item for item in lstStats">
        </select>
    </div>

И мой controller.js

app.controller('MainController', ['$scope',  function ($scope) {

$scope.listings = [
     {
         id: '1',
         number: '1',
         title: 'Apples'
     },
     {
         id: '2',
         number: '2',
         title: 'Oranges'
     },
     {
         id: '3',
         number: '3',
         title: 'Bananas'
     },
     {
         id: '4',
         number: '3',
         title: 'Peaches'
     }
],

$scope.lstStats = ["Have", "Get"];

Я могу успешно отображать списки и показывать раскрывающееся меню для пользователя «Выбрать» или «Получить». Но как я могу дать пользователю возможность сортировать по «Have» или «Get» и иметь списки, отсортированные по тому, что пользователь вводит?

Это, наверное, очень просто, и я просто не думаю об этом правильно, поэтому извиняюсь заранее!

angularjs,angularjs,

1

Ответов: 1


1 принят

вы делаете это, выбрав selectedlstStats как свойство в объекте листинга, что-то вроде этого:

 <select ng-model="listing.selectedlstStats" ng-options="item for item in lstStats"></select>

и для сортировки вы можете использовать это свойство для сортировки списка, как это:

<div class="card" ng-repeat="listing in listings | orderBy:'selectedlstStats'">

в следующей ссылке приведен пример моей идеи:

Пример здесь

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