ng-click и определение переменной ng-init - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь заставить сортировщик заголовка таблицы работать с помощью ng-click и ng-init.

Примеры в angular js документах требуют модулей, и если я устанавливаю и обновляю этот модуль, мой SPA почему-то разваливается. Я пытался заставить его работать, но даже с помощью других коллег это не удалось.

Итак, я подумал об обходе и придумал ng-click и ng-init. Если я посчитаю количество кликов, то каждое четное число кликов, таблица сортируется по возрастанию и каждое нечетное число кликов, таблица сортируется по убыванию.

Я могу сделать один клик и одну сортировку (например, один нажмите - по возрастанию - сделано навсегда, независимо от того, сколько еще я нажимаю) (нажмите). Но когда я использовал ng-click и ng-init, переменная внутри ng-init не распознается.

<th><button class="some-type" ng-click="count = count + 1; oddEven(count)? sortByAsc(column) : sortByDes(column)" ng-init="count = 0"><b>columnName</b></button></th>

Если я вставлю {{count}} справа, кроме columnName в приведенном выше коде (или где-либо еще) в коде чего стоит) выдает ошибку, говоря, что счетчик не определен.

<th><button class="some-type" ng-click="count = count + 1" ng-init="count = 0"><b>columnName</b></button></th>

Я удалил дополнительные вызовы функций в ng-click, как в приведенном выше коде, но даже этот простой код не распознает счетчик вообще.

Итак, есть ли конкретный c способ объявления переменных внутри ng-init и ng-click?

Почему этот код не работает так, как есть?

1 Ответ

0 голосов
/ 10 апреля 2020

Я предлагаю сохранить отслеживание объекта, какой порядок столбцов на ACS или Des порядке, который вы можете использовать в функции для вызова соответствующей функции. Вот пример кода.

var sortOrder = {
  column1: false,
  column2: false
}

$scope.sortBy = function(col) {
  if(sortOrder[col]) {
    sortByAsc(col)
  } else {
    sortByDes(col)
  }
  sortOrder[col] = !sortOrder[col]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...