全栈编程

Balance $ 2,317
Item Sold 1230
文章作者: 全栈编程@luboke.com
版权声明: 本文章为go语言体系课视频教程配套电子书,版权归 全栈编程@luboke.com所有,欢迎免费学习,转载必须注明出处!但禁止任何商业用途,否则将受到法律制裁!
Go的模板引擎处理模板文件和数据时需要用到模板文件中的一些命令,这些命令我们称之为动作,动作的格式{{ 动作 }},动作需要放到 两对大括号里面,点(.)是一个很重要的动作,代表了传给模板的当前数据。

go语言模板引擎中的动作

条件判断
{{ if ok }}
            // ok为true,则显示这里的内容
            hello ok true,全栈编程@luboke.com
        {{ end }}


        {{ if ok }}
            //ok为true,则显示这里的内容
            hello ok true,全栈编程@luboke.com
        {{ else }}
            // ok为false,则显示这里的内容
            hello ok false,全栈编程@luboke.com
        {{ end }}

说明: ok 是传递给条件动作的参数,取值可以为  布尔值、字符串、变量、某个函数或者方法它返回单个值
 
迭代遍历
{{range . }}
            满足条件的数据
        {{ end }}



        {{range . }}
            满足条件的数据
        {{ else }}
            没有遍历到任何元素
        {{ end }}
以下为调用实例
{{range .Data}}
            <tr>
            <td><input type="checkbox" class="checkid" value="{{.Id}}"></td>
            <td>{{.Id}}</td>
            <td>{{.Intro}}</td>
            <td>{{.Cid}}</td>
            <td>{{.Name}}</td>
            <td><img src="{{.Photo_little}}" /></td>
            {{/*                                            <td>{{.Photo_lists}}</td>*/}}
            <td>{{.Price}}</td>
            <td>{{.Price_preferential}}</td>
            <td>{{.Saledcount}}</td>
            <td>{{.BrandId}}</td>
            <td>{{.Num}}</td>
            <td><a href="/Admin/ProductAddUpdate?id={{.Id}}">修改</a></td>
            </tr>
        {{end}}
range后面的点代表被遍历的元素; 
当需要遍历map时还可以通过$指定变量
{{ range $k , $v := . }}
            键是 {{ $k }} , 值是 {{ $v }}
        {{ end }}
{{range $k,$v := .Data}}
            <tr>
            <td><input type="checkbox" class="checkid" value="{{.Id}}"></td>
            <td>{{$k}}{{.Id}}</td>
            <td>{{$k}}{{.Intro}}</td>
            <td>{{$k}}{{.Cid}}</td>
            </tr>
        {{end}}
 
设置动作
{{ with params }}
            为传过来的数据设置的新值是{{ . }}
        {{ end }}

//实例

{{ with .Data }}
    {{.}}
{{ end }}
params就是给传过来的数据设置的新值

 

{{ with "bobo" }}
            如果with后面的数据不为空,则显示该段数据,否则显示else段
        {{ else }}
            数据段为空,则显示这里{{ . }}
        {{ end }}
 
包含动作
// name是被包含的模板的名字,这里没有传递数据

{{ template “name” }}


// 将传过来的数据再传入到包含的模板中,  . 就是要传给被包含模板的数据,也是后台传给当前模板的数据
{{ template “name” .}}

 

定义动作
对于html页面中的相同部分,比如公用的js,css,公用的导航栏、公用的页面尾部的版权信息,可以通过定义动作在模板文件将这些公用的数据单独定义出来
{{ define "templateName" }}
            公用的js,css,公用的导航栏、公用的页面尾部的版权信息
        {{ end }}

允许在一个模板里包含另一个模板

templateName就是定义的模板的名字,将来可以在其他模板文件中通过包含动作将当前定义的模板包含进去
不同的模板文件中可以定义相同名称的模板
文章作者: 全栈编程@luboke.com
版权声明: 本文章为go语言体系课视频教程配套电子书,版权归 全栈编程@luboke.com所有,欢迎免费学习,转载必须注明出处!但禁止任何商业用途,否则将受到法律制裁!
copyright © 2020 全栈编程@luboke.com