smart-таблица: условная st-сортировка

0

Есть ли способ иметь условную st-сортировку в смарт-таблице. Пример. У меня есть массив, который сообщает мне, что столбцы в моей таблице сортируются. Допустим, у моей таблицы есть столбцы [FirstName, LastName, Age, email], а мой массив сортировщиков - [firstName, age], что означает, что поля firstname и age являются sortabe. Как я могу достичь этого с помощью smart-talbe. Любая помощь высоко ценится! Благодарю!!

  • 0
    разместил мой код ниже!
Теги:
smart-table

2 ответа

0

Я согласен, что это неловкий способ сделать, но то, как службы возвращают нам данные. Я попробовал следующий код и получил его работу (он сортирует столбцы firstname и age.), Хотя для меня это не очень чистый подход -

В моем HTML -

<thead>
    <tr>
        <th st-ratio="20" ng-attr-st-sort="sorters.getSorter('firstName')">first name</th> <!-- sortable rows -->
            <th st-ratio="20" ng-attr-st-sort="sorters.getSorter('lastName')">last name</th>
    <th st-ratio="10" ng-attr-st-sort="sorters.getSorter('age')">age</th>
    <th st-ratio="30" ng-attr-st-sort="sorters.getSorter('email')">email</th>
    <th st-ratio="20" ng-attr-st-sort="sorters.getSorter('balance')">balance</th>
    </tr>
    </thead>  

enter code here

В моем js -

 $scope.sorters = {
                getSorter: function(prop){
                  return function(value){
                    var sortables = ['firstName', 'age'];
                    for(var i=0;i<sortables.length; i++){
                      if(sortables[i] === prop) {
                        return value[prop];
                      };
                    }

                    return undefined;
                  }
                }
              };  

Хотя это решает мою проблему, мне не нравится этот подход. Есть ли лучший вариант для этого? PS - В конечном итоге я буду преобразовывать это в директиву, если у меня нет лучшего варианта.

0

Как смарт-таблица хочет, чтобы вы указывали, сортируется ли столбец или нет, с помощью директивы st-sort в вашем <thead>, он сообщает, какой столбец должен быть отсортирован по какому объекту, например:

<thead>
<tr>
    <th st-sort="firstName">first name</th> <!-- sortable rows -->
    <th st-sort="lastName">last name</th>
    <th st-sort="age">age</th>
    <th>email</th> <!-- not sortable -->
</tr>
</thead>

вы говорите, что у вас есть массив, который сообщает вашей таблице, какой столбец сортируется, а какой нет. На мой взгляд, это очень неудобный способ делать что-то в целом, и это не может быть сделано в ST.

Однако вы можете написать директиву, которая условно добавляет или удаляет st-sort из вашей таблицы, используя значения из массива. но это будет просто беспорядок

Ещё вопросы

Сообщество Overcoder
Наверх
Меню