我想知道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。
我不知道是否有人遇到同样的问题。
谢谢。
答案 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'" ...>
。希望这为您提供了确定问题根源的起点。