2016-11-16 1 views
-2

Ich habe folgendes select-Element:Angular - Wie überprüft man, wenn Auswahloptionen aktualisiert werden?

<select id="expiry" class="input col-sm-12 col-xs-12 ng-pristine ng-valid ng-touched" ng-model="selectedInstrumentExpiration" ng-options="item.expire | timezone: 'EST' | date:'MMM dd, yyyy HH:mm' for item in selectedInstrumentCode.value | filterExpired | orderBy: 'expire'" ng-change="changeInstrumentExpiration()"> 

Es wird verwendet, wobei bestimmte Ablaufzeiten zu halten, in der Regel zwischen Intervallen von 5 Minuten und einmal einer von ihnen erreicht wird aus der Liste entfernt ist und die nächste kommt oben drauf.

Was ich möchte etwas ausführen, wenn das neue oben kommt. Ich probierte mit der Funktion, die bei ng-change (changeInstrumentExpiration()) angegeben wurde, aber es funktioniert nur, wenn der Benutzer sie manuell ändert. Ich habe es auch mit WatchCollection versucht, aber das hat auch nicht funktioniert.

Was würden Sie sagen, ist die beste Vorgehensweise in diesem Fall? Ich bin relativ neu in Angular so würde etwas Hilfe sehr geschätzt :)

+0

Paste Code in Intervall erfassen können. –

+0

Entfernen Sie den letzten Wert aus Ihrem Array, wenn der neue Wert Ihr Array hinzufügt. Das ist einfach Sinn –

Antwort

2

Sie AngularJS Uhr-Funktion für jede Änderung mit Datenänderung

$scope.$watch('data', function (newVal, oldVal) { /*...*/ }, true); 
+0

Ich habe es versucht, aber es funktioniert nicht, es ist das gleiche wie wenn ich $ watchCollection verwenden - es funktioniert, wenn der Benutzer eine Option auswählt, aber nicht wenn die verfügbaren Optionen aktualisiert werden. –

+0

Ah, vergiss es, mein Fehler war woanders, $ scope. $ Watch funktioniert tatsächlich, danke! –

Verwandte Themen