Go テンプレートの範囲内の親パイプライン データにアクセスするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-11 15:10:03
オリジナル
638 人が閲覧しました

How to Access Parent Pipeline Data within Range in Go Templates?

テンプレート アクションの範囲内の親パイプラインへのアクセス

Go テンプレートでは、範囲パイプラインを使用してスライスまたはマップを反復処理するのが一般的です。ただし、パイプラインの直接の範囲外のデータにアクセスしようとすると、頻繁に問題が発生します。この記事では、これを実現する方法について説明します。

$ 変数の使用 (推奨)

テキスト/テン​​プレートのドキュメントでは、実行開始時に $ 変数がデータを参照することが指定されています。 Execute に渡される引数。これは、$.variable.

を使用して外部スコープのデータにアクセスできることを意味します。たとえば、次のテンプレートを考えてみましょう:

const page = `{{range .Files}}<script src="{{html $.Path}}/js/{{html .}}"></script>{{end}}`
ログイン後にコピー

ここで、.Files はファイルのスライスを指しますが、囲んでいる scriptFiles 構造体のパスにアクセスしたい。 $.Path を使用すると、それが可能になります。

カスタム変数の使用 (従来のメソッド)

別の方法では、範囲スコープに渡すカスタム変数を作成する必要があります。このテンプレートで示すように:

const page = `{{$p := .Path}}{{range .Files}}<script src="{{html $p}}/js/{{html .}}"></script>{{end}}`
ログイン後にコピー

範囲パイプラインの前に $p を .Path に設定することで、アクセスできます。パイプライン内のパス。

注: 現在の Go バージョンでは、より簡潔で慣用的なアプローチである $ 変数メソッドをお勧めします。

以上がGo テンプレートの範囲内の親パイプライン データにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート