テンプレート アクションの範囲内の親パイプラインへのアクセス
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 サイトの他の関連記事を参照してください。