Wpis z mikrobloga

@tlaziuk: Z tym ze funkcja wywołuje sie w tabeli, jako podsumowanie kilku kolumn. Wiec duzo wygodniej wywoływać ją z poziomu html, gdzie mam odrazu dostep do odpowiednich argumentów. Nie ma sposobu zeby ta funkcja wywolala sie jednokrotnie przy przeladowaniu strony ale z wywolaniem z poziomu html?
  • Odpowiedz
@tlaziuk: Próbowałem jakimiś warunkami, ale lecą wyjątki związane z odświeżeniem wartości. Dana wartość zmienia się szybciej niż poprzednia zostanie validowana i wyjątek. Zna ktoś może jakiś sposób na obejście tego?
  • Odpowiedz
@DrizztDoUrden
Jak Ci wali error Expression has been changed.... to możesz wykonanie tego kodu opakować w setTimeout(tutajTwojaFunkcja, 0).

To jest naturalne, że Twoja funkcja w bindingu woła się kilkukrotnie. Angular z każdym uruchomieniem systemu detekcji odswieża bindingi na widoku, więc dzieje się to wiele razy. Wylicz sumę wartości raz i umieść tam już pole ze sumą, niech ta suma jest polem klasy.

Jeśli to jest jakaś dynamiczna tabelka to
  • Odpowiedz
@DrizztDoUrden: duzo wygodniej, ale cos nie idzie? Trochę sobie przeczysz. Posluchaj kolegów i zrób to zgodnie z zachowaniem odrobiny czystości kodu.

ps. Tak jak napisal tlaziuk chodzi o odswiezanie widoku - wiec łatwiej dać ja w kodzie niz pilnowac wszystkich powodow dla których odswieza sie widok.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@DrizztDoUrden: jeśli masz takie problemy prawdopodobnie robisz coś źle, pewnie masz jakiś skomplikowany komponent. Osobiście wywoływanie jakieś funkcji w template to dla mnie anty pattern. Gdy chcesz zmodyfikować wartośc przez funkcje typu pure, jest mechizm pipe Możesz jeszcze spróbować strategii OnPush, ale to łatanie problemu, a nie jego rozwiązanie od "środka"
  • Odpowiedz