如何以编程方式清除智能表中的搜索字段?

时间:2018-11-04 22:50:33

标签: smart-table

此刻我正在使用智能表,并且在每一列的顶部都输入了文本框,并且正在使用st-search。从表中选择了我正在做的事情,然后更改了表中的结果。

单击行时,我试图清除搜索框。目前,在点击时实现了其他业务逻辑,因此我现在想清除这些文本框。

我试图将ng-model与这些文本框相关联,并在单击该行但文本框未更改时将其清除。我也用谷歌搜索了这个问题,当您单击按钮(通过指令)清除谓词时,我只找到了如何使它起作用的解决方案。但是,我无法使这些解决方案以编程方式起作用。

1 个答案:

答案 0 :(得分:0)

要解决此问题,我做了以下事情:

  1. 用此github问题(https://github.com/lorenzofox3/Smart-Table/issues/164)中的代码猴子修补了smarttable.js。对我来说,这发生在第574行附近。

    //从https://github.com/lorenzofox3/Smart-Table/issues/164添加     ng.module(“ smart-table”)。directive(“ stResetSearch”,         function(){             返回{                 限制:“ EA”,                 要求:“ ^ stTable”,                 链接:function(scope,element,attrs,ctrl){                     返回element.bind('click',                         function(){                             返回范围。$ apply(function(){                                 var tableState;                                 tableState = ctrl.tableState();                                 tableState.search.predicateObject = {};                                 tableState.pagination.start = 0;                                 返回ctrl.pipe();                             });                         });                 }             };         });

    1. 为在angularjs中调用函数的元素添加了“ st-research-search”。对我来说,那是“ tr”元素。如下所示。

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

这很好。不幸的是,我无法以编程方式从代码中清除谓词。但这对我来说足够好。