2016-06-28 84 views
1

我正在使用去模板來篩選不正確命名的服務與領事模板。我從提供領事模板的作品這樣的功能REGEXMATCH:使用函數返回if語句或變量在去模板

{{"foo.bar" | regexMatch "foo([.a-z]+)"}} 

它返回true或false取決於字符串。我想在if語句中有條件地使用它,類似於其他代碼,它以名稱「consul」過濾出服務。這是這樣工作的:

{{range services}} {{$service:=.Name}} {{if not (eq $service "consul")}} 

問題是,我不能在該if語句或變量聲明中嵌套函數調用。我曾嘗試

{{if {$service | regexMatch "^[-a-z0-9]{1,}$"}}}} 

{{$syntax= {$service | regexMatch "^[-a-z0-9]{1,}$"}}}} 

,但我得到這些錯誤:

unexpected "{" in if 
unexpected bad character U+003D '=' 

我如何使用REGEXMATCH功能在if語句在這去模板?

回答

2

一旦有人需要它,

{{if $service | regexMatch "^[-a-z0-9]{1,}$"}} 
https://golang.org/pkg/text/template/

具體:

{{管道}} 管道 的值的缺省文本表示被複制到輸出。

{{if if pipeline}} T1 {{end}} 如果管道的值爲空,則不會生成輸出; 否則,執行T1。空值爲假,0,任意 無指針或接口值,以及任何數組,片段,映射或長度爲零的字符串。 點不受影響。