beego视图模板循环range中对变量的对比,测试示例栏目中对比变量后选中功能
Go / 管理员 发布于 3年前 1181
beego文章编辑中实现文章栏目默认选中功能示例,可以接上一篇在beego中添加文章功能
因为问发布文章功能已经开发完(有需要是自行翻阅下面url)
https://www.zongscan.com/demo333/89503.html
现在编辑文章,我直接在添加的视图模板上操作,就是添加编辑公用模板了
编辑控制器就多了个根据文章id返回该id的文章信息至视图模板中,
然后根据这个判断是添加还是编辑 , 这里就不过多介绍
我直接到主题:
栏目默认选中功能
路由:
直接是文章编辑
控制器:
栏目数据我统计在基类中返回视图
无相关代码省略...
...
//编辑数据
func (c *ArtController) Editart() {
//注:
//获取path参数,如 /editart/{id} 用c.Ctx.Input.Param(":id")
//获取query参数,如 /?id=1 用c.Ctx.Input.Query("id")
idStr := c.Ctx.Input.Query("id")
id, _ := strconv.Atoi(idStr)
o := orm.NewOrm()
//文章
art := models.Art{Art_id: id}
err := o.Read(&art)
if err != nil {
c.TplName = "login.html"
return
}
c.Data["art"] = art
fmt.Println("edit", id, art.Cat_id, art)
c.TplName = "addart.html"
}
视图:
我的栏目是直接在视图view中使用range嵌套if
使用select下拉是用if判断然后给默认选中, 给html关键字selected
这里不能用==或eq 会直接报错:
template:
...
error calling eq: invalid type for comparison
所以要直接用变量对比函数compare,该函数是beego的模板函数
函数描述及使用:
实现了比较两个对象的比较,如果相同返回 true,否者 false
使用方法:
{{compare .A .B}}
无相关省略...
...
<label>栏目:</label>
{{$cid := .art.Cat_id}}
<select name="cat_id" class="form-control">
{{range $ind, $elem := .cats}}
<option value="{{$elem.cat_id}}" {{if compare $elem.cat_id $cid}} selected="selected" {{end}}>{{$elem.catname}}</option>
{{end}}
</select>
...
ps:
这里有个直接赋值操作 外面的变量值需要重新赋值一个变量
{{$cid := .art.Cat_id}}
不然在循环中打印出来要么是乱码,要么是空的,具体原因这里就不细聊,可自行谷歌搜索
看看效果图:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号