执行golang中没有引号的模板

问题描述 投票:3回答:2

我想用noescape和没有引号来执行模板,但现在不支持noescape

任何建议还是我必须使用其他模板引擎?谢谢!

此处的代码:http://play.golang.org/p/R-Ib5H9bXx

go template-engine
2个回答
3
投票

鼓励您以[template.JS类型存储安全的Javascript:

JS字符串类型

JS封装了一个已知的安全EcmaScript5表达式,例如template.JS。模板作者负责确保类型化表达式不会破坏预期的优先级并且没有像传递一个像“ {foo:bar()} \ n'foo'”这样的表达式,两者都是有效的表达式和含义完全不同的有效程序。

因此,您唯一需要对代码进行的更改是:

(x + y * z())

0
投票

除了@ANisus答案之外的一小部分。还有一个类似的HTML(和CSS)包装器。每当您尝试将HTML字符串传递到模板中时,它都会被引用。因此,为了正确呈现安全的HTML,请使用:

type Var struct {
    Name  template.JS
    Value template.JS
}
© www.soinside.com 2019 - 2024. All rights reserved.