"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني تمرير البيانات كوسائط إلى قالب مضمن في نظام Go \'s templating؟

كيف يمكنني تمرير البيانات كوسائط إلى قالب مضمن في نظام Go \'s templating؟

نشر في 2025-03-24
تصفح:152

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

تمرير البيانات بين القوالب

في نظام Go's Templating ، قد يكون من الضروري تمرير البيانات بين قوالب متعددة ، خاصة عند تضمين قالب واحد داخل آخر. ينشأ السؤال ، "كيف يمكنني نقل البيانات كوسائط إلى قالب مضمن والوصول إليه داخل هذا القالب؟"

لتحقيق ذلك ، يمكنك استخدام وظيفة مخصصة تدمج الوسيط في قيمة شريحة واحدة. عن طريق تسجيل هذه الوظيفة ، يمكن استخدامها ضمن استدعاء القالب. يوضح الرمز التالي كيف يتم ذلك:

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