2016-04-11 4 views
0

Ich würde gerne wissen, wie StSearch ausgelöst wird oder wie ich es selbst auslösen könnte.Wie wird StSearch ausgelöst?

Mein Problem ist ich habe ein Array von Objekt alle mit einem creationDate.

Ich möchte in der Lage sein, das Array von einem Erstellungsdatum zum anderen zu filtern.

zu tun, dass ich eine Datepicker aus ui-Bootstrap wie folgt verwenden:

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

Ich habe auch einen benutzerdefinierten Filter, der auf stSearch ausgelöst wird, die ich so auf den Tisch gelegt:

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

Wenn ich das Datum auf einem Datepicker ändere, wird die StSearch aus irgendeinem Grund nicht ausgelöst.

Ich weiß nicht, ob jemand mit dem gleichen Problem konfrontiert war.

Vielen Dank.

Antwort

0

Versuchen auf den Quellcode für die Richtlinie st-Suche suchen: https://github.com/lorenzofox3/Smart-Table/blob/master/src/stSearch.js

die relevanten Teile des Codes sind:

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); 
}); 

Aus dem Vorstehenden die Suche (tableCtrl.search) ausgelöst wird, wenn die Ereignis, das standardmäßig auf das Eingabeereignis verweist, wird auf dem Eingabeelement ausgelöst, auf das st-search angewendet wird. Sie können das Ereignis, das den Anruf auslöst, über die st-input-event-Direktive, z. B. tableCtrl.search, ändern. <input st-input-event="change" st-search="'fromDate'" ...>. Hoffentlich gibt Ihnen das einen Ausgangspunkt, um die Ursache Ihres Problems zu identifizieren.