如何在go模板中包含不同文件夹中的文件

时间:2018-03-22 08:45:12

标签: go-templates

例如,文件夹test.tpl中有A

{{define "test"}} hello I am test {{end}}

文件夹index.tpl中的另一个B

{{template "A/test"}} or {{template "test"}}

两者都不起作用。

1 个答案:

答案 0 :(得分:0)

使用template.ParseFiles并解析所有模板。每个使用不同的名称。此目录布局

def print_numbers(number): 
    print(number) 
    if number > 1: 
        print_numbers(number-1) 
print_numbers(10)

exports.updateScorePosition = functions.firestore.document('collection/{documentId}').onWrite(event => { return db.collection('collection').orderBy('points').get() .then(snapshot => { let updatePointsBatch = db.batch(); let i = 0; snapshot.docs.forEach(doc => { updatePointsBatch.update(doc.ref, { index: i}) i++; }); return updatePointsBatch.commit(); }) .catch(error => console.log('error: ' + error)); }); 包含

.
├── A
│   └── index-A.tpl
├── B
│   └── index-B.tpl
└── main.go

A/index-A.tpl包含

A

使用此代码

B/index-B.tpl

将产生此输出:

B1
{{template "index-A.tpl"}}
B2

请注意,两个模板都在package main import ( "os" "text/template" ) func main() { t, err := template.ParseFiles("B/index-B.tpl", "A/index-A.tpl") if err != nil { panic(err) } err = t.Execute(os.Stdout, nil) if err != nil { panic(err) } } 中命名,而B1 A B2 引用templateParseFiles的名称​​没有路径