第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在 Go 模板中請(qǐng)求上下文

在 Go 模板中請(qǐng)求上下文

Go
翻翻過去那場(chǎng)雪 2021-06-18 18:57:06
我想在 Go HTML 模板中編寫這樣一個(gè)條件片段:  {{if isUserAdmin}}      <a href"/admin/nuke">Go to the big red nuclear button</a>   {{end}}但是,這不是直接可能的,因?yàn)槟0宀恢烙|發(fā)其執(zhí)行的請(qǐng)求,因此無法確定用戶是否為管理員。有沒有一些正常的方法來實(shí)現(xiàn)這一目標(biāo)?我事先指出:我不想將管道用于此特定數(shù)據(jù)(請(qǐng)參閱有關(guān)此的其他問題)我承認(rèn)只有處理程序/控制器應(yīng)該處理邏輯,而視圖應(yīng)該只進(jìn)行渲染。但是條件{{if isUserAdmin}}本身并不是邏輯,它是利用控制器已經(jīng)計(jì)算出的布爾值的必要構(gòu)造。該funcs中方法可以幫助,但目前不瘦夠容易確定具體的方法isUserAdmin()
查看完整描述

3 回答

?
慕的地10843

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊

我同意 Darshan Computing,我認(rèn)為從請(qǐng)求中傳遞信息的正確方法將在管道中。您可以將數(shù)據(jù)拆分為要呈現(xiàn)的數(shù)據(jù)和上下文,例如,如果您想清楚地將兩者分開,可以讓模板數(shù)據(jù)結(jié)構(gòu)將它們都嵌入:


type TemplateData struct {

    *Content

    *Context

}

例如,這給出了這一點(diǎn)。然后,您可以根據(jù)共享的內(nèi)容和特定于查詢的內(nèi)容重復(fù)使用某些上下文/內(nèi)容信息。


查看完整回答
反對(duì) 回復(fù) 2021-06-28
?
繁花不似錦

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊

這是在模板編譯之后但在每次執(zhí)行之前使用Funcs覆蓋的有效解決方案嘗試(鏈接到 Playground)(感謝 Valentin CLEMENT 在其他問題中)。"isAdmin"

但它有幾個(gè)缺陷:

  • "isAdmin"在模板編譯之前聲明一個(gè)虛擬的空函數(shù)是很奇怪的。

  • 多次使用 Funcs 很痛苦,因?yàn)槲也荒苤桓采w一個(gè)方法,我必須提供一個(gè)包含所有功能的完整FuncMap) 編輯:實(shí)際上以前的 funcs 并沒有丟失,我錯(cuò)了。

  • 它本質(zhì)上不是線程安全的,并且會(huì)在多個(gè) goroutine 更改并執(zhí)行相同的模板時(shí)失敗


查看完整回答
反對(duì) 回復(fù) 2021-06-28
  • 3 回答
  • 0 關(guān)注
  • 227 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)