Golang : Executing and evaluating nested loop in html template
Alright, just a minor problem and putting the solution here on how to fix this problem for future reference. Basically, I need to loop two slices inside HTML template and somehow the inner loop will not be evaluated. Attempts to range
over the inner slice will cause this error message:
template: editRenterPageBody:90:36: executing "editRenterPageBody" at <.currentlyRentedTheseProperties>: can't evaluate field currentlyRentedTheseProperties in type models.Property
and the code that caused this error message:
{{range $forRent := .propertiesForRent}} {{ range $rented := .currentlyRentedTheseProperties}} <!-- can't evaluate field error! --> <option value="{{ $forRent.ID }}" {{ if (eq $forRent.ID $rented.ID )}} {{ print "selected" }} {{ end }}>{{ (wordlimiter $forRent.Name 5) }}</option> {{end}} {{end}}
after some investigation, the error message is caused by a missing '$`. We can read from the official documentation:
When execution begins, $ is set to the data argument passed to Execute, that is, to the starting value of dot.
Therefore, to fix this problem, we just add a $
in front of the inner loop.
{{range $forRent := .propertiesForRent}} {{ range $rented := $.currentlyRentedTheseProperties}} <!-- need $. here instead of . --> <option value="{{ $forRent.ID }}" {{ if (eq $forRent.ID $rented.ID )}} {{ print "selected" }} {{ end }}>{{ (wordlimiter $forRent.Name 5) }}</option> {{end}} {{end}}
Hope this helps!
Happy coding!
Reference :
See also : Golang : How to use if, eq and print properly in html template
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+11.8k Golang : Save webcamera frames to video file
+25k Golang : Convert uint value to string type
+8.3k Python : Fix SyntaxError: Non-ASCII character in file, but no encoding declared
+14.6k Golang : How to check for empty array string or string?
+9.6k Golang : Resumable upload to Google Drive(RESTful) example
+19.3k Golang : Example for DSA(Digital Signature Algorithm) package functions
+8.5k Golang : Combine slices but preserve order example
+10.3k Golang : How to unmarshal JSON inner/nested value and assign to specific struct?
+8k Golang : HttpRouter multiplexer routing example
+5.2k Golang : What is StructTag and how to get StructTag's value?
+29.6k Golang : How to declare kilobyte, megabyte, gigabyte, terabyte and so on?
+9.4k Golang : Validate IPv6 example