Я пытался использовать HTMX для добавления новой строки к таблице, которую я отображаю. Я использую атрибут hx-swap-oob, чтобы я мог перерисовать форму и обмениваться внутри таблицы новую строку. Проблема в том, что я все вставил, где форма, поэтому форма верна, но новая строка появляется без метки ниже формы. < /P>
Вот это HTML -код: < /p>
Основной шаблон: < /p>
{{ define "allUsers" }}
{{ template "form" .Form }}
{{ template "contacts" .Data }}
{{ end }}
< /code>
Форма: < /p>
{{ define "form" }}
Name:
Email:
Password:
{{ if .Errors }}
{{ .Errors.msg }}
{{end}}
CreateUser
{{ end }}
< /code>
Контакты: < /p>
{{ define "contacts" }}
Users
ID
Name
Age
Email
-
{{ range .Contacts }}
{{ template "contact" . }}
{{ end }}
{{ end }}
< /code>
Это то, что я пытаюсь отображать с помощью HTMX-swap-oob: < /p>
{{ define "contact" }}
{{ .ID }}
{{ .Name }}
{{ .Age }}
{{ .Email }}
hx-target="#contact-{{ .ID }}">
{{ end }}
< /code>
И здесь я отправляю данные из бэкэнда после отправки формы: < /p>
{{ define "form-and-oob" }}
{{ template "form" .Form }}
{{ template "contact" .Data.Contact }}
{{ end }}
< /code>
И вот мой обработчик, написанный в Go, используя Echo: < /p>
func (s *ServerBU) handlePost(c echo.Context) error {
name := c.FormValue("name")
email := c.FormValue("email")
password := c.FormValue("password")
if !s.EmailIndex.IsDuplicate(email) {
log.Printf("Email %s already in use\n\n\n", email)
form := NewForm()
form.Values["name"] = name
form.Values["email"] = email
form.Values["password"] = password
form.Errors["msg"] = "Email already registered."
return c.Render(422, "form", form)
}
id, newUser, err := NewUser(name, "default", email, password, 42069)
if err != nil {
form := NewForm()
form.Values["name"] = name
form.Values["email"] = email
form.Values["password"] = password
form.Errors["msg"] = "Some error. Please try again."
return c.Render(422, "form", form)
}
s.EmailIndex.Put(email, id.String())
s.Storage.Put(id.String(), *newUser)
p := NewPage(*NewForm(), Data{Contact: *newUser})
return c.Render(200, "form-and-oob", p)
}
< /code>
Я попытался использовать прямую цель для , но я все еще получаю те же результаты. Также просто отправляя контакт, без перерисовывания формы, но новая строка все еще проходит под формой. Я просто не могу найти способ нацеливаться на правильную вещь, это просто не движется из области ниже формы!
Подробнее здесь: https://stackoverflow.com/questions/794 ... -with-htmx