$ hugo versionHugo Static Site Generator v0.54.0 darwin/amd64 BuildDate: unknown$ cat layouts/t/code.html ... {{- $json := getJSON $path -}} {{- if eq $action "edit" -}} {{- $json.nestedMap["action"] = "update" -}} {{- end -}} ... <script type="module"> import App from "/code.js"; new App({{ $json.nestedMap | jsonify }}); </script>$json.nestedMap 是map[string]interface {}但出現錯誤解析失敗錯誤字符 U+005B '['感謝您的任何提示。
2 回答

慕蓋茨4494581
TA貢獻1850條經驗 獲得超11個贊
您收到的錯誤是因為該[字符是意外的。
事實上,這種語法在模板內不起作用:
$json.nestedMap["action"]
您必須使用index這樣的函數來訪問地圖元素:
index $json.nestedMap "action"
但是,據我所知,該語法不允許您實際設置密鑰,而只能訪問它。
修改模板內的映射的一種方法是在包裝器結構中定義某些方法,然后從模板中調用該方法。
例如:
type mapWrapper struct {
TheMap map[string]interface{}
}
func (m *mapWrapper) SetMapValue(key, value string) string {
m.TheMap[key] = value
return ""
}
然后在模板中:
{{- .SetMapValue "key2" "value2" }}
操場上的完整工作示例:
https://play.golang.org/p/8bT4jjYwuzg
- 2 回答
- 0 關注
- 111 瀏覽
添加回答
舉報
0/150
提交
取消