英文:
How to change dynamic variable in Revel Template
问题
在我的revel项目中,我有一个选择选项,需要在点击提交按钮后被选中。
如果我像这样做,它可以工作,因为.OptionType
是一个字符串,所以我需要将它与字符串进行比较:
<select class="chosen form-control" id="selectType">
<option disabled value='' style="display:none"> --------- </option>
<option {{ if eq .OptionType "1" }}selected{{end}} value="1">Option A</option>
<option {{ if eq .OptionType "2" }}selected{{end}} value="2">Option B</option>
<option {{ if eq .OptionType "3" }}selected{{end}} value="3">Option C</option>
</select>
但是,如果我尝试像.ID
这样比较变量,它会抛出一个错误:
<select class="chosen form-control" id="selectValue">
<option {{ if eq .SelectedValue "all" }} selected {{end}} value='all'>
All Value
</option>
{{range .Circles}}
<option {{ if eq .SelectedValue .ID }} selected {{end}} value='{{.ID}}'>
{{.Name}}
</option>
{{end}}
</select>
有没有办法在同一行中将.ID
转换为if语句?
错误信息:
在执行"BackendReport/Finance.html"时,无法在models.Value类型中评估字段SelectedValue
英文:
In my revel project, i have a select option that need to get selected after clicking submit button.
If i do it like this it works because .OptionType
is a string so i need to compare it with string
<select class="chosen form-control" id="selectType">
<option disabled value='' style="display:none"> --------- </option>
<option {{ if eq .OptionType "1" }}selected{{end}} value="1">Option A</option>
<option {{ if eq .OptionType "2" }}selected{{end}} value="2">Option B</option>
<option {{ if eq .OptionType "3" }}selected{{end}} value="3">Option C</option>
</select>
But if i try to compare variable like .ID
it throws an error
<select class="chosen form-control" id="selectValue">
<option {{ if eq .SelectedValue "all" }} selected {{end}} value='all'>
All Value
</option>
{{range .Circles}}
<option {{ if eq .SelectedValue .ID }} selected {{end}} value='{{.ID}}'>
{{.Name}}
</option>
{{end}}
</select>
Is there any way that i could convert .ID
in the same line with if statement ?
Error Message:
executing "BackendReport/Finance.html" at <.SelectedValue>: can't evaluate field SelectedValue in type models.Value
答案1
得分: 1
template.go
revel.TemplateFuncs["toString"] = func(val interface{}) string {
return fmt.Sprint(val)
}
.html
{{$current_value := .SelectedValue -}}
{{range .Circles}}
<option {{ if eq $current_value (toString .ID) }}selected{{end}} value='{{.ID}}'>
{{.Name}}
</option>
{{end}}
这在我这里可以工作。希望对你有帮助。
英文:
template.go
revel.TemplateFuncs["toString"] = func(val interface{}) string {
return fmt.Sprint(val)
}
.html
{{$current_value := .SelectedValue -}}
{{range .Circles}}
<option {{ if eq $current_value (toString .ID) }}selected{{end}} value='{{.ID}}'>
{{.Name}}
</option>
{{end}}
This works in me. Hope its help you.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论