Go语言中文手册 · 模板函数

admin 2024-08-15 16:41:49 编程 来源:ZONE.CI 全球网 0 阅读模式

1. 模板函数

beego 支持用户定义模板函数,但是必须在 `beego.Run()` 调用之前,设置如下:

    func hello(in string)(out string){
        out = in + "world"
        return
    }

    beego.AddFuncMap("hi",hello)

定义之后你就可以在模板中这样使用了:

    {{.Content | hi}}

目前 beego 内置的模板函数如下所示:

* dateformat

    实现了时间的格式化,返回字符串,使用方法 {{dateformat .Time "2006-01-02T15:04:05Z07:00"}}。

* date

    实现了类似 PHP 的 date 函数,可以很方便的根据字符串返回时间,使用方法 {{date .T "Y-m-d H:i:s"}}。

* compare

    实现了比较两个对象的比较,如果相同返回 true,否者 false,使用方法 {{compare .A .B}}。

* substr

    实现了字符串的截取,支持中文截取的完美截取,使用方法 {{substr .Str 0 30}}。

* html2str

    实现了把 html 转化为字符串,剔除一些 script、css 之类的元素,返回纯文本信息,使用方法 {{html2str .Htmlinfo}}。

* str2html

    实现了把相应的字符串当作 HTML 来输出,不转义,使用方法 {{str2html .Strhtml}}。

* htmlquote

    实现了基本的 html 字符转义,使用方法 {{htmlquote .quote}}。

* htmlunquote

    实现了基本的反转移字符,使用方法 {{htmlunquote .unquote}}。

* renderform

    根据 StructTag 直接生成对应的表单,使用方法 {{&struct | renderform}}。

* assets_css

    为css文件生成一个`<link>`标签`. `使用方法 {{assets_css src}}

* assets_js

    为js文件生成一个`<script>`标签`.`使用方法 {{assets_js src}}

* config

    获取AppConfig的值`.`使用方法 {{config configType configKey defaultValue}}`.` 可选的 configType有String,Bool,Int,Int64,Float,DIY

* map_get

    获取 `map` 的值

    用法:

        // In controller
        Data["m"] = map[string]interface{} {
            "a": 1,
            "1": map[string]float64{
                "c": 4,
            },
        }

        // In view
        {{ map_get .m "a" }} // return 1
        {{ map_get .m 1 "c" }} // return 4

* urlfor

    获取控制器方法的 URL

        {{urlfor "TestController.List"}}

    详见 模板中如何使用
TypeScript学习笔记 编程

TypeScript学习笔记

TypeScript学习笔记[TOC]TypeScript概述TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型
高德地图JSAPI学习笔记 编程

高德地图JSAPI学习笔记

[toc]概述地图 JS API 2.0 是高德开放平台免费提供的第四代 Web 地图渲染引擎, 以 WebGL 为主要绘图手段,本着“更轻、更快、更易用”的服
golangTCPpush 编程

golangTCPpush

在当今互联网时代,即时通讯成为了人们生活中不可或缺的一部分。而实现即时通讯的关键技术之一就是TCP Push。作为一名专业的golang开发者,我们不仅需要掌握
nodegolang性能对比 编程

nodegolang性能对比

在当前的编程世界中,Node.js和Golang是两种备受瞩目的技术。它们都拥有出色的性能和能力,但在某些方面却存在差异。本文将对Node.js和Golang进
评论:0   参与:  20