2014-12-03 91 views
1

我有兴趣在某些条件下向GO模板添加内容。我已经定义了这样的一个结构 -如果 - 其他条件

{ 

    "resourceActions": { 
    "update": { 
    "input": null, 
    "output": "instance", 
    }, 
    "stop": { 
    "input": "instanceStop", 
    "output": "instance", 
    }, 
    "console": { 
    "input": "instanceConsoleInput", 
    "output": "instanceConsole", 
    }, 
    "restart": { 
    "input": null, 
    "output": "instance", 
    }, 
    "remove": { 
    "input": null, 
    "output": "instance", 
    }, 

} 

我需要遍历“resourceActions”如果动作,像更新中定义,重新启动等具有输入为空,则产生“A()”否则产生A(输入* {} inputVAL)

示例 -

{ 

    for Update - A() 
    for stop - A(input *instanceStop) 
    for console - A(input *instanceConsoleInput) 
    for restart - A() 

} 

我怎样才能做到这一点的GO-tempaltes

回答

2

我解决我的问题是这样 -

{ 
    {{ $temp := .schema.Id }} 
    {{if .Input}} func (c *Container) {{$key }}(input *{{.Input}}) *{{$temp}}{} {{else}} func (c *Container) {{$key}}() *{{$temp}}{}{{end}} 
} 

这在GO模板中正常工作。