嵌套golang模板中的变量

我想在golang模板中定义变量,而不是在二进制文件中定义,这样就无需重新编译 。 </ p>

在Go中,我设置了一些变量:</ p>

 变量动物= map [string] string {
“ spirit_animal”:“ cat “,
” spirit_predator“:” dog“,
}
</ code> </ pre>

我使用以下代码执行模板: t.ExecuteTemplate(w,” main “,变量)</ code>,将这些变量传递到模板。 </ p>

现在,我想将这些变量从“ go”模板转到“ main”模板。</ p>

  {{$ spirit_animal:=“  cat“}} {{$ spirit_animal}} 
</ code> </ pre>

然后我将子模板称为:</ p>

   {{模板“ navbar”。  }} 
</ code> </ pre>

问题是嵌套模板(子模板)似乎无法访问任何变量。 </ p>

文档,“ 模板调用不会从调用点继承变量。” 阅读“文本/模板”的文档,听起来好像变量不能在嵌套模板中使用。 </ p>

关于如何将这些变量从二进制文件中提取出来并放入嵌套模板可访问的单个文本位置的任何建议,不需要在更改时重新编译?</ p>
</ DIV>

展开原文

原文

I want to define variables inside of a golang template, instead of in a binary so that there is no need to recompile.

In Go, I set some vars:

var animals = map[string]string{
    "spirit_animal":    "cat",
    "spirit_predator":  "dog",
}

I execute the template with this: t.ExecuteTemplate(w, "main", variables) which passes these vars to the template.

Now I would like to take these vars from go and into the "main" template.

{{$spirit_animal:="cat"}} {{$spirit_animal}}

And I call sub-templates like this:

{{ template "navbar" . }}

The problem is that nested templates (sub templates) do not appear to have access to any variables.

From the documentation, "A template invocation does not inherit variables from the point of its invocation." Reading the Documentation for "text/template", it sounds like variables may not be able to be used in nested templates.

Any suggestions on how to get these vars out of a binary and into a single text location accessible by nested templates that doesn't need to be recompiled on change?

dsoy71058
dsoy71058 stackoverflow.com/questions/18276173/…可能是最好的答案。
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐