0Pricing
Helm Academy · Lekcja

Zachowywanie głównej kropki wewnątrz range

Używanie przechwyconego odwołania do korzenia w pętlach.

Zachowywanie głównej kropki wewnątrz range to bezpłatna lekcja Helm Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Helm Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Helm Academy zawiera 4 lekcji w sumie.

Kropka może się zmieniać

Wewnątrz pętli range kropka przestaje oznaczać korzeń chartu i zaczyna wskazywać bieżący element. To często zaskakuje osoby piszące szablony po raz pierwszy.

Dlaczego to stanowi problem

Gdy kropka zostanie ponownie związana, wyrażenia takie jak .Values lub .Release przestają działać wewnątrz pętli, ponieważ główny kontekst nie jest już kropką.

Najpierw przechwyć korzeń

Rozwiązanie jest proste: przed pętlą należy zapisać kropkę korzenia w zmiennej. Następnie wewnątrz range można uzyskać dostęp do pierwotnego kontekstu za pośrednictwem tej zmiennej.

{{ $root := . }}

Używanie zapisanego korzenia

Wewnątrz pętli każdą ścieżkę dotyczącą całego chartu należy poprowadzić przez zmienną. Należy zapisać $root.Values zamiast .Values, aby wyjść poza lokalną kropkę.

{{ range .Values.items }}
release: {{ $root.Release.Name }}
{{ end }}

Lokalna kropka nadal działa

W przypadku samego elementu pętli należy nadal używać zwykłej kropki. Wewnątrz range kropka oznacza bieżący element, czyli dokładnie to, czego potrzeba.

{{ range .Values.ports }}
- port: {{ . }}
{{ end }}

Łączenie elementu z korzeniem

Rzeczywiste szablony często potrzebują obu wartości jednocześnie: elementu wskazywanego przez kropkę oraz wartości chartu pochodzącej z korzenia. Przechwycenie $root pozwala odwoływać się do obu w czytelny sposób.

{{ $root := . }}
{{ range .Values.hosts }}
host: {{ . }}.{{ $root.Values.domain }}
{{ end }}

Popularny wybór nazwy

W wielu chartach tę zmienną nazywa się $root lub $top, ale nazwa zależy od Państwa. Najważniejsze jest przechwycenie kropki, zanim range ponownie ją zwiąże.

range z indeksem i wartością

Forma z dwiema zmiennymi wiąże indeks i wartość bezpośrednio, dzięki czemu kropka pozostaje wolna. Mimo to przechwycenie korzenia nadal jest najbezpieczniejszym nawykiem.

{{ range $i, $v := .Values.ports }}
- {{ $i }}: {{ $v }}
{{ end }}

Ta sama pułapka wewnątrz with

Blok with również ponownie wiąże kropkę z poddrzewem. Ten sam sposób przechwytywania korzenia pozwala odzyskać odwołania do wartości całego chartu.

Testowanie wyniku pętli

Należy wyrenderować chart i sprawdzić pętlę. helm template pokaże, czy w każdej iteracji wartości korzenia zostały rozwiązane zgodnie z oczekiwaniami.

helm template ./mychart

Przechwyć przed wejściem

Kolejność ma znaczenie: przypisanie $root := . należy wykonać poza pętlą. Jeśli zostanie wykonane wewnątrz range, kropka będzie już ponownie związana, więc zapisana zostanie niewłaściwa wartość.

Szybkie sprawdzenie

Wewnątrz pętli range wyrażenie {{ .Values.port }} nagle nie zwraca żadnej wartości.

Podsumowanie

Wiadomo już, że range ponownie wiąże kropkę, że $root := . zapisuje pierwotny kontekst oraz że lokalna kropka nadal oznacza element pętli. 🔁

Często zadawane pytania

Czy lekcja „Zachowywanie głównej kropki wewnątrz range” jest bezpłatna?

Tak — pełny tekst „Zachowywanie głównej kropki wewnątrz range” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Helm Academy, przejdź na CoddyKit PRO. Kurs Helm Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Zachowywanie głównej kropki wewnątrz range”?

Używanie przechwyconego odwołania do korzenia w pętlach. Ćwiczysz Helm Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Helm Academy?

Nie wymagamy żadnego doświadczenia. Helm Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Zachowywanie głównej kropki wewnątrz range”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Helm Academy?

Tak. Każda lekcja Helm Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Przypisywanie zmiennych szablonu
  2. Zachowywanie głównej kropki wewnątrz range
  3. nindent a indent w praktyce
  4. Debugowanie białych znaków po renderowaniu
← Powrót do Helm Academy