2017-08-05 34 views
0

我在Golang工作,現在我需要在一個select中打印至少20個選項,所以我需要使用某種從0到20的循環(以獲得索引)。在Golang模板中實現一個for循環

如何在golang模板中使用for循環?

我需要生成模板內部的數字序列。我沒有任何數組來迭代。

編輯: 我需要得到的東西是這樣的:

<select> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
</select> 

所以,我需要在代碼中類似的事情:

<select> 
    {{for i := 1; i < 5; i++}} 
     <option value="{{i}}">{{i}}</option> 
    {{end}} 
</select> 

但是,這並不工作

+0

你試圖打開一個手冊? –

+0

你應該寫更多關於你想達到什麼(包括例子)以及你已經試過的東西 – jayme

+0

@jayme更新! –

回答

0

您也可以在模板中使用range。見https://golang.org/pkg/text/template/#hdr-Variables

最簡單的選擇可能是隻使用包含您選擇一個切片:

func main() { 
    const tmpl = ` 
<select> 
{{range $val := .}} 
    <option value="{{$val}}">{{$val}}</option> 
{{end}} 
</select> 
` 
    t := template.Must(template.New("tmpl").Parse(tmpl)) 

    t.Execute(os.Stdout, []int{1, 2, 3}) 
} 
+0

是的,我已經看到了。但據我瞭解,範圍只是迭代已經創建的數組,我沒有任何數組。我需要在運行時生成序列 –