Ich habe ein ng-class
Attribut (das ich nicht selbst geschrieben habe). Es ist im Controller an eine String-Variable gebunden. Es sieht so aus: <some-tag ng-class="'indicator_' + $ctrl.stringValue"></some-tag>
.Das Binding Only Updates nach dem Klicken auf das Element, obwohl die Zeichenfolge im Controller bereits aktualisiert wurde (Angular 1.5)
Wenn das Fenster zuerst geladen wird - es enthält die korrekten Daten, aber nachdem die Zeichenfolge im Controller aktualisiert wurde - wird der Wert im Attribut class
nur aktualisiert, nachdem ich auf das Element geklickt habe (der Klick öffnet eine Liste, aber Ich denke nicht, dass es relevant ist).
Ich habe gelesen, dass die erste Sache in diesen Fällen zu überprüfen ist, dass der Code von einem $scope.$apply
umgeben ist. Es ist, weil, wenn ich versuche, es hinzuzufügen - ich bekomme einen Fehler, der sagt "$ verdauen bereits in Bearbeitung". Auf der Suche nach $ctrl
und ng-class
Info, lese ich die AngularJS component doc und this site, die mir einige grundlegende Hintergrundinformationen zu diesen Themen gab. Die Sache ist, ich konnte keine Beispiele für ng-class
mit $ctrl
finden. Vielleicht ist es irrelevant, aber vielleicht nicht :)
Beispiel für eine irrelevante Frage, die ich in dem Thema fand, ist: Angular ngClass is not updating my classes even though my condition change as expected. Im Allgemeinen sind die meisten Beispiele, die ich fand, geschweifte Klammern, die ich in diesem Fall nicht für relevant halte, da ich eine Schnur binde (vielleicht verwechsle ich mich damit :)).
Ich vermute, es hat es wahrscheinlich nicht richtig gebunden, ich weiß einfach nicht warum.
Edit:
Nach Fortsetzung, das Thema zu suchen, ich bin nicht mehr sicher, dass es mit dem ng-class
verwandt ist (so dass ich den Titel als auch bearbeitet). Es sieht eher wie ein Aktualisierungsproblem aus.
Ich bin verwirrt, warum die Seite nicht aktualisiert, da überall ich lese - sie sagen, dass die Angular die Digest-Funktion selbst aufrufen sollte, und ich sollte nicht stören.
Edit2:
Ich arbeite mit typeScript
und die stringValue
wird über ein Ereignis von einem Dienst aktualisiert. Aber die Zeichenfolge aktualisiert - also ich bin mir nicht sicher, es ist eine relevante Information, um das Problem zu verstehen, aber erwähnenswert :)
Shmool, danke für Sie beantworten, aber in meinem Fall - der 'stringValue' wird nicht als Ergebnis einer Benutzeraktion aktualisiert - es aktualisiert sich als Ergebnis von etwas, das im Code passiert. – Yaara
Ich habe auch die Frage bearbeitet - ich arbeite mit 'typeScript', ist es relevant .. Ich kann das Problem nicht reproduzieren, da ich mit einigen anderen Diensten arbeite und eines von ihnen verwende, um ein Ereignis auszulösen. ** Aber der Punkt ist - ** ein Service ein Ereignis auslösen, fängt der Controller es und aktualisieren Sie die Zeichenfolge (die Zeichenfolge aktualisiert!). Aber danach - die '$ ctrl.stringValue'-Bindung im HTML wird nicht aktualisiert, bis die Seite aktualisiert wird, und sie aktualisiert sich nicht von selbst. – Yaara