Jak wymusić ponowne renderowanie komponentu w Angular 2? Do celów debugowania pracy z Redux chciałbym zmusić składnik do ponownego renderowania jego widoku, czy to możliwe?Jak wymusić ponowne renderowanie komponentu w Angular 2?
Odpowiedz
Rendering dzieje po wykryciu zmian. Aby wymusić wykrywanie zmian, tak że składnik wartości nieruchomości, które zmieniły się rozmnażane do DOM (a następnie przeglądarka będzie świadczyć te zmiany w widoku), oto kilka opcji:
- ApplicationRef.tick() - podobny do kątowa 1-
$rootScope.$digest()
- tzn. sprawdź pełne drzewo komponentów: - NgZone.run(callback) - podobne do
$rootScope.$apply(callback)
- tj. sprawdź funkcję zwrotną wewnątrz strefy Angular 2. Myślę, ale nie jestem pewien, że to kończy się sprawdzanie pełnego drzewa komponentów po uruchomieniu funkcji zwrotnej. - ChangeDetectorRef.detectChanges() - podobny do
$scope.$digest()
- to znaczy, sprawdź tylko tego składnika i jego dzieci
można wstrzyknąć ApplicationRef
, NgZone
lub ChangeDetectorRef
do swojego urządzenia.
Dla konkretnego scenariusza polecam ostatnią opcję, jeśli zmienił się tylko jeden komponent.
wypróbuj wszystkie z nich, ale nadal nie działa na ios, smutny – vuhung3990
Czy działający kod na ChangeDetectorRef dla ostatecznej wersji angular2? Mam teraz do czynienia z sytuacją, w której widok nie jest aktualizowany po wysłaniu żądania http, aby utworzyć nowego użytkownika, a następnie po sukcesie, przesuwając nowy obiekt do istniejącej starej listy użytkowników (używanej do iteracji w widoku). Dość dziwne, że "po raz pierwszy mam do czynienia z aktualizacją, która nie działa w ng2". Strategia wykrywania zmian jest domyślna, więc wiem, że nie naruszyłem strategii wykrywania zmian. – Gary
@Gary, powinieneś zamieścić nowe pytanie i dołączyć swój komponent i kod serwisowy (najlepiej, jeśli posiadasz minimalny plunker demonstrujący problem). Powszechnym problemem, jaki widziałem, nie jest użycie właściwego kontekstu 'this' w wywołaniu zwrotnym POST. –
TX, znalazł obejście mi potrzebne:
constructor(private zone:NgZone) {
// enable to for time travel
this.appStore.subscribe((state) => {
this.zone.run(() => {
console.log('enabled time travel');
});
});
działa zone.run zmusi komponent ponowne renderowanie
co to jest appStore w tym kontekście - jaki rodzaj zmiennej i jej typ? wydaje się być zauważalne ... ale moje obserwowalne jest wewnątrz komponentu, który chcę odświeżyć jednym kliknięciem ... i nie wiem jak uzyskać dostęp do metody/zmiennej komponentu potomnego z obiektu nadrzędnego/bieżącej lokalizacji –
- 1. Angular 2 Jasmine Jak testować funkcję komponentu
- 2. Inicjalizacja komponentu Infinite Loop - Angular 2 JSPM
- 3. Reagowanie na wyższy składnik zamówienia wymusza ponowne renderowanie owiniętego komponentu
- 4. Angular 2 Universal - Renderowanie po stronie serwera
- 5. React dodając! Ważne wydaje się przerwać ponowne renderowanie komponentu
- 6. Angular 2, komponent wewnątrz głównego komponentu
- 7. Jak zadeklarować Wejścia komponentu w Angular 2 w ES5?
- 8. Jak wymusić ponowne wysłanie Ember.Component?
- 9. Angular 2 new Router: Jak uzyskać parametry routera komponentu potomnego?
- 10. Angular 2 jak wysyłać zdarzenia z komponentu wnukowego na macierzysty?
- 11. Angular 2 zmieniające zmienne komponentu na innym komponencie
- 12. Angular 2 element potomny odnosi się do komponentu nadrzędnego
- 13. Dlaczego Angular 2 nie ładuje domyślnego komponentu App-root?
- 14. Przekierowanie wewnątrz komponentu Kątowymi 2
- 15. Przekazywanie danych wejściowych podczas tworzenia komponentu Angular 2 dynamicznie za pomocą komponentu ComponentResolver
- 16. Angular 2 - JWT auth
- 17. Formularze w Angular 2 RC4
- 18. Jak wymusić renderowanie IE9 w trybie dokumentu IE9?
- 19. Jak używać mniej z Angular 2?
- 20. Zwrot wartości obietnicy w Angular 2, Ionic 2
- 21. Ustawianie rootView.appProperties nie ponowne renderowanie elementów korzeń
- 22. ponowne renderowanie pliku EJS po żądaniu ajaxowym
- 23. Waluta w Angular 2
- 24. Tablica wyjściowa komponentów w Angular 2
- 25. Interfejs Angular 2 do usługi
- 26. Subskrybuj wiele obiektów Observables w Angular 2
- 27. Angular 2. Jak zastosować orderBy?
- 28. Jak uruchomić funkcję jquery w Angular 2 po każdym ładowaniu końcowego komponentu
- 29. Obserwowanie zmiany właściwości obiektu w Angular 2
- 30. Angular 2 Sort List Animations
Co masz na myśli przez "ponowne renderowanie". Zaktualizować powiązania? –
Po prostu krótkie pytanie, dlaczego musisz wymusić ponowne renderowanie? –
Możliwy duplikat ręcznego wykrywania [Wyzwalania Angular2 zmiany] (http://stackoverflow.com/questions/34827334/triggering-angular2-change-detection-manually) – blo0p3r