在THTML文件中,在range块内使用Go的变量。

huangapple go评论86阅读模式
英文:

Use Go .Variable inside range block in THTML file

问题

我有一个.thtml文件:

<!-- language: lang-xml -->

...
&lt;div&gt;
    &lt;p&gt;{{.Something}}&lt;/p&gt;        &lt;!-- 这里可以工作! --&gt;
	{{range ...}}
		&lt;p&gt;{{.Something}}&lt;/p&gt;    &lt;!-- 这里无法工作! --&gt;
	{{end}}
&lt;/div&gt;
...

如果我在.thtml文件中使用.Something的值,它可以正常工作,但如果在{{range ...}}块内以相同的方式使用它,则无法工作。

我该如何使用它?

英文:

I have a .thtml file:

<!-- language: lang-xml -->

...
&lt;div&gt;
    &lt;p&gt;{{.Something}}&lt;/p&gt;        &lt;!-- It works here! --&gt;
	{{range ...}}
		&lt;p&gt;{{.Something}}&lt;/p&gt;    &lt;!-- It DOESN&#39;t work here! --&gt;
	{{end}}
&lt;/div&gt;
...

If I use the value of .Something inside the .thtml file it works fine, but it doesn't work if it is used in the same way inside a {{range ...}} block.

How can I use it?

答案1

得分: 1

光标通过{{range}}进行修改。将光标分配给一个变量,并在range内部使用该变量。

...
<div>
    <p>{{.Something}}</p>        
    {{$x := .}}    <!-- 将光标分配给变量$x -->
    {{range ...}}
        <p>{{$x.Something}}</p>    
    {{end}}
</div>
...

playground示例

如果此片段中的起始光标是模板的起始值,则使用$变量:

...
<div>
    <p>{{$.Something}}</p>     <!-- 变量$是模板的起始值 -->    
    {{range ...}}
        <p>{{$.Something}}</p>    
    {{end}}
</div>
...
英文:

The cursor is modified by {{range}}. Assign the cursor to a variable and use that variable inside the range.

...
&lt;div&gt;
    &lt;p&gt;{{.Something}}&lt;/p&gt;        
    {{$x := .}}    &lt;!-- assign cursor to variable $x --&gt;
    {{range ...}}
        &lt;p&gt;{{$x.Something}}&lt;/p&gt;    
    {{end}}
&lt;/div&gt;
...

playground example

If the starting cursor in this snippet is the starting value of the template, then use the $ variable:

...
&lt;div&gt;
    &lt;p&gt;{{$.Something}}&lt;/p&gt;     &lt;!-- the variable $ is the starting value for the template --&gt;    
    {{range ...}}
        &lt;p&gt;{{$.Something}}&lt;/p&gt;    
    {{end}}
&lt;/div&gt;
...

huangapple
  • 本文由 发表于 2017年7月2日 04:04:39
  • 转载请务必保留本文链接:https://go.coder-hub.com/44864972.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定