2015-03-04 3 views
1

У меня есть таблица данных, которую я могу фильтровать и показывать только строки «Цвет», если я выберу элемент «Только цвет» из списка сортировки. Я делаю это с помощью следующего кода:Как сортировать отфильтрованные данные?

<label>Sort By:</label> 
<select ng-model="orderProp" class="form-control" tabindex="2"> 
    <option value="title">Title</option> 
    <option value="filename">File Name</option> 
    <option value="class">Classification</option> 
    <option value="color">Color Only</option> 
</select> 

А затем с помощью нг-повтора на элементе таблицы:

<tr ng-repeat="item in filtered = (pptData | filter: query | orderBy: orderProp)" ng-if="orderProp !== 'color' || item.color"> 

Однако, как я могу отобразить эти результаты цвета по названию? Я попытался сделать следующее, но это не помогло:

<option value="{{ 'color' | orderBy:'title' }}">Color Only</option> 

У кого-нибудь есть идеи? Мой live demo is here.

+0

Итак, когда пользователь выбирает «Сортировать по цвету», он должен сортироваться по названию? Это довольно запутанно, не так ли? Почему вы используете фильтр сортировки для фильтрации? Почему вы не используете флажок для фильтрации по цвету, вместо использования опции сортировки? –

+0

Я думаю, что он имеет в виду, когда вы выбираете «только цвет», что означает color = true, тогда записи должны сортироваться по названию. –

+0

jedanput правильно. – redshift

ответ

0

Я хотел бы сделать что-то вроде этого,

<tr ng-repeat="item in filtered = (pptData | filter: query | orderBy: [orderProp,'title'])" ng-if="orderProp !== 'color' || item.color"> 

В принципе вы сортировать по orderProp, затем по названию.

+0

Я передумал этот процесс, и когда я попробовал это на этот раз, это сработало для меня. Благодаря! – redshift

Смежные вопросы