Как я могу программно очистить поля поиска в смарт-таблице? - PullRequest
0 голосов
/ 05 ноября 2018

В настоящее время я использую смарт-таблицу, и у меня есть текстовые поля ввода вверху каждого столбца, и я использую st-search. Суть того, что я делаю, заключается в том, что что-то выбирается из таблицы, а затем результаты в таблице изменяются.

Я пытаюсь очистить поля поиска при щелчке строки. В настоящее время другая бизнес-логика реализуется по щелчку, поэтому в этот момент я собираюсь очистить эти текстовые поля.

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

1 Ответ

0 голосов
/ 05 ноября 2018

Чтобы решить эту проблему, я сделал следующее:

  1. Исправленный обезьяной smarttable.js с кодом в этом выпуске github (https://github.com/lorenzofox3/Smart-Table/issues/164). Для меня это произошло примерно в строке 574.

    // добавлено от https://github.com/lorenzofox3/Smart-Table/issues/164 ng.module ( "умный стол"). Директива ( "stResetSearch", function () { вернуть { ограничение: «EA», требуют: '^ stTable', link: function (scope, element, attrs, ctrl) { return element.bind ('click', function () { возвращаемая область. $ apply (function () { var tableState; tableState = ctrl.tableState (); tableState.search.predicateObject = {}; tableState.pagination.start = 0; return ctrl.pipe (); }); }); } }; });

    1. Добавлен st-research-search к элементу, который вызывал функцию в angularjs. Для меня это был элемент "tr". Как ниже.

           <tr ng-repeat="medicine in medicines" ng-click="medicationMatched(medicine)" ng-class="heatmapClass(medicine)" st-reset-search>
      

Это сработало нормально. К сожалению, я не смог программно очистить предикаты из кода. Но это работает достаточно хорошо для меня.

...