«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу передавать данные в качестве аргументов в включенном шаблоне в системе шаблона Go \?

Как я могу передавать данные в качестве аргументов в включенном шаблоне в системе шаблона Go \?

Опубликовано в 2025-03-24
Просматривать:618

How can I pass data as arguments to an included template in Go\'s templating system?

передача данных между шаблонами

в системе шаблона Go, может потребоваться передавать данные между несколькими шаблонами, особенно когда включение одного шаблона в другой. Возникает вопрос: «Как я могу передавать данные в качестве аргументов в включенный шаблон и получить доступ к нему в этом шаблоне?»

для достижения этого вы можете использовать пользовательскую функцию, которая объединяет аргументы в одно значение среза. Зарегистрировав эту функцию, ее можно использовать в рамках вызова шаблона. Следующий код демонстрирует, как это сделано:

package main

import (
    "fmt"
    "html/template"
)

func main() {
    t, err := template.New("t").Funcs(template.FuncMap{
        "args": func(vs ...interface{}) []interface{} { return vs },
    }).Parse("{{ template \"image_row\" args . 5 }}")
    if err != nil {
        fmt.Println(err)
        return
    }

    err = t.Execute(template.Must(template.ParseFiles("index.html", "image_row.html")), nil)
    if err != nil {
        fmt.Println(err)
        return
    }
}

// index.html
{{ template "image_row" . | 5 }}

// image_row.html
{{ define "image_row" }}
   To stuff here {{index . 0}} {{index . 1}}
{{ end }}

В шаблоне Image_row аргументы можно получить с помощью встроенной функции индекса. Например, {{index. 0}} будет получить доступ к первым аргументам (индекс 0), переданный из шаблона index.html, в данном случае число 5.

это решение предоставляет универсальный способ передачи и доступа между несколькими шаблонами, обеспечивая пользовательскую функциональность и эффективное повторное использование кода.

]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3