亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

其他包中未定義 html/template 類型的 Golang 全局變量

其他包中未定義 html/template 類型的 Golang 全局變量

Go
慕娘9325324 2023-06-05 17:08:49
我之前在我的主包中聲明了全局變量func main(),但它仍然沒有在另一個包中聲明。package mainimport{? "html/template"? .....)var tmpl = template.New("master")func main() {? ? func init() {? ? ? ? _, err := tmpl.ParseGlob("templates/*.html")? ? ? ? if err != nil {? ? ? ? ? ? log.Fatalln("Error loading templates:", err)? ? ? ? }....}? ??在另一個包中,我在一個函數中編寫:? ? tmpl.ExecuteTemplate(w, "venue-index.html", res)但我得到一個錯誤tmpl:未定義我意識到還有其他類似的問題,但答案并沒有解決我的問題。我究竟做錯了什么?
查看完整描述

2 回答

?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

tmpl從另一個包中看不到。要從其他包中導入變量,您必須通過完全限定名稱引用它們,并讓變量以大寫字母開頭,pack.Tmpl等等。

也不可能將變量從導入main到其他包中。


查看完整回答
反對 回復 2023-06-05
?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

這是我用于在幫助程序包中聲明模板的解決方案:


package helpers


import (

    "html/template"

    "log"

)


// Tmpl global template var

var Tmpl = template.New("master")


func init() {

    _, err := Tmpl.ParseGlob("templates/*.html")

    if err != nil {

        log.Fatalln("Error loading templates:", err)

    }

}

然后在我的控制器包中:


package controllers


import (

        "myapp/helpers"

)


someFunc() {

.... 

helpers.Tmpl.ExecuteTemplate(w, "header.html", nil)

....


查看完整回答
反對 回復 2023-06-05
  • 2 回答
  • 0 關注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號