Goのhtml/templateを使用して解析された、私のすべての管理/システム値を含む構造体をビューに渡したいと思います。たとえば、.IsAuthenticatedと.IsAdminを明示的にハンドラを通さずに、デフォルトでビューに与えたいとします。ハンドラーの外側にあるhtml/templateに値を渡す
ハンドラを経由せずに、これらの値をデフォルトで常に使用できるようにすることはできますか?私はフォーム値と他のユーザー生成コンテンツをハンドラを介して渡したいと思います。
Goのhtml/templateを使用して解析された、私のすべての管理/システム値を含む構造体をビューに渡したいと思います。たとえば、.IsAuthenticatedと.IsAdminを明示的にハンドラを通さずに、デフォルトでビューに与えたいとします。ハンドラーの外側にあるhtml/templateに値を渡す
ハンドラを経由せずに、これらの値をデフォルトで常に使用できるようにすることはできますか?私はフォーム値と他のユーザー生成コンテンツをハンドラを介して渡したいと思います。
アプリケーションがテンプレートに値を渡すことなく、テンプレートがadmin/system構造体にアクセスすることはできません。値を渡す便利な方法は、各ビュータイプの匿名フィールドを使用する方法です。ここでは例です:
func myHandler(w http.Response, r *http.Request) {
var data = struct {
*AdminSystemStuff
AFieldSpecificToThisView string
AnotherViewField string
}{
getAdminSystemStuff(r),
"hello",
"world"
}
err := t.Execute(w, &data) // t is the compiled template.
if err != nil {
// handle error
}
}
:AdminStuff
はあなたの管理者やシステムデータを含む構造体であるとgetAdminSystemStuff(*http.Request)
が要求から構造体へのポインタを取得する機能であり、このようなビューのデータを定義すると仮定すると
あなたは、このようなテンプレートでこれを使用することができます:私は私の例アプリにこれを追加しようとしました
<html>
<body>
Here are some fields: {{.AFieldSpecificToThisView}} {{.AnotherViewField}}
{{if .IsAuthenticated}}The user is authenticated{{end}}
</body>
</html>
が、私は特定のコンポーネントがどこに行くかわからないんだけど、あなたはファイル名を掲載いただけません(たとえば、構造体として。)各セクションのために私はこれを再現する方法を見ることができますか?私は非常に新しいです! – dingalingchickenwiing
改訂ありがとうございました - これは現在どのように動作しているのですか? – dingalingchickenwiing