stSearch是如何触发的?

时间:2016-04-11 14:51:42

标签: angularjs smart-table

我想知道stSearch是如何触发的,或者我怎么能自己触发它。

我的问题是我有一个对象数组都有一个creationDate。

我希望能够将数组从创建日期过滤到另一个。

要做到这一点,我使用ui-bootstrap的datepicker,如下所示:

<input uib-datepicker-popup="DD/MM/YYYY" st-search="'fromDate'">
<input uib-datepicker-popup="DD/MM/YYYY" st-search="'toDate'">

我还有一个在stSearch上触发的自定义过滤器,我将它放在桌子上:

<table st-set-filter="myCustomFilter" st-table="myDatas">

当我更改日期选择器上的日期时,由于某种原因不会触发stSearch。

我不知道是否有人遇到同样的问题。

谢谢。

1 个答案:

答案 0 :(得分:0)

尝试查看st-search指令的源代码:https://github.com/lorenzofox3/Smart-Table/blob/master/src/stSearch.js

代码的相关部分是:

var promise = null;
var event = attr.stInputEvent || stConfig.search.inputEvent;

// attr.$observe and scope.$watch calls...

// view -> table state
element.bind(event, function (evt) {
  evt = evt.originalEvent || evt;
  if (promise !== null) {
    $timeout.cancel(promise);
  }

  promise = $timeout(function () {
    tableCtrl.search(evt.target.value, attr.stSearch || '');
    promise = null;
  }, throttle);
});

从上面开始,当默认为输入事件的事件在应用tableCtrl.search的输入元素上触发时,将触发搜索(st-search)。您可以通过tableCtrl.search指令更改触发st-input-event调用的事件,例如<input st-input-event="change" st-search="'fromDate'" ...>。希望这为您提供了确定问题根源的起点。