Nó nhận thấy một điều lạ với Go mẫu khi tôi cố gắng sử dụng Funcs
và FuncMap
. Các mã sau đây làm việc như mong đợi:Go mẫu chức năng
buffer := bytes.NewBufferString("")
funcMap := template.FuncMap{
"label": strings.Title,
}
t, _ := template.New("alex").Funcs(funcMap).Parse("{{label \"alex\"}}")
t.Execute(buffer, "")
return string(buffer.Bytes()) //=> "Alex"
Nhưng khi tôi cố gắng để đưa các mẫu trong một tập tin, nó không hoạt động (Execute()
nói: "alex" is an incomplete or empty template
):
t, _ := template.New("alex").Funcs(funcMap).ParseFiles("template.html")
Với template.html:
{{label \"alex\"}}
Bất kỳ ý tưởng nào tại sao? Đây có phải là một lỗi ? Có cách nào đơn giản hơn để sử dụng các phương thức/chức năng trong các mẫu?
ý tưởng đầu tiên là để kiểm tra lỗi từ Parse và Execute. Mã của bạn ở trên bỏ qua cả hai. – Sonia
Vâng tôi đã kiểm tra Parse nhưng không thực thi. Execute nói: "" alex "là mẫu không hoàn chỉnh hoặc trống" – Blacksad