2017-07-01 10 views
-1

ファイル私は.thtmlファイルがあります場合は利用ゴー.Variable

... 
<div> 
    <p>{{.Something}}</p>  <!-- It works here! --> 
    {{range ...}} 
     <p>{{.Something}}</p> <!-- It DOESN't work here! --> 
    {{end}} 
</div> 
... 

私は.thtmlファイル内.Somethingの値を使用している場合は、それが正常に動作しますが、それは動作しません。それは同じ方法で{{range ...}}ブロック内で使用されます。

どうすれば使用できますか?

+0

を私は既存のGoアプリケーションを変更する必要がありますが、私はこの言語で技術的背景を持っていません。またGo言語の用語がわからないため、質問を編集してより明確にすることができれば感謝しています。 –

答えて

1

カーソルは{{range}}で変更されます。カーソルを変数に割り当て、その変数を範囲内で使用します。

... 
<div> 
    <p>{{.Something}}</p>   
    {{$x := .}} <!-- assign cursor to variable $x --> 
    {{range ...}} 
     <p>{{$x.Something}}</p>  
    {{end}} 
</div> 
... 

playground example

このスニペットで始まるカーソルはテンプレートの開始値である場合には、$変数を使用します。

... 
<div> 
    <p>{{$.Something}}</p>  <!-- the variable $ is the starting value for the template -->  
    {{range ...}} 
     <p>{{$.Something}}</p>  
    {{end}} 
</div> 
... 
+0

このアプローチに基づいて、 'Something'の値を使いたいだけなら' {{$ x:= .Something}} 'と' {{range ...}} ' '{{$ x}}'だけを使うことをブロックしますか? –

+0

{{$ x:= .Something}}は、パフォーマンス上のメリットはごくわずかです。コードを理解しやすいものにすることをお勧めします。 –