将 Int64ToString 改为 Uint64ToString后,删除按钮依旧不会展现出来

1. 运行环境

MacOS Monterey 12.0.1
go version go1.17.2 darwin/amd64

2. 问题描述?

articles_controller.go

tmpl, err := template.New("show.gohtml").
Funcs(template.FuncMap{
"RouteName2URL":  route.Name2URL,
"Uint64ToString": types.Uint64ToString,
}).
ParseFiles("resources/views/articles/show.gohtml")
logger.LogError(err)
tmpl.Execute(w, article)

show.gohtml

{{/* 构建删除按钮  */}}
    {{ $idString := Uint64ToString .ID  }}
    <form action="{{ RouteName2URL "articles.delete" "id" $idString }}" method="post">
        <button type="submit" onclick="return confirm('删除动作不可逆,请确定是否继续')">删除</button>
    </form>

3. 您期望得到的结果?

将 Int64ToString 改为 Uint64ToString后,删除按钮依旧不会展现出来

4. 您实际得到的结果?

将 Int64ToString 改为 Uint64ToString后,删除按钮依旧不会展现出来

将 Int64ToString 改为 Uint64ToString后,删除按钮依旧不会展现出来

Oyxiaoxi
Summer
最佳答案

articles_controller.go 文件里,下面这一行:

tmpl.Execute(w, article)

改为:

err = tmpl.Execute(w, article)
logger.LogError(err)

然后刷新页面,再看下终端里显示什么。

2年前 评论
Sloth 2年前
ross 2年前
kangsf 1年前
kangsf 1年前
讨论数量: 16
Summer

articles_controller.go 文件里,下面这一行:

tmpl.Execute(w, article)

改为:

err = tmpl.Execute(w, article)
logger.LogError(err)

然后刷新页面,再看下终端里显示什么。

2年前 评论
Sloth 2年前
ross 2年前
kangsf 1年前
kangsf 1年前
MangoDa

不小心把评论删除了,感谢回复,我认认真真在仔细敲一遍

2年前 评论

我有这个问题 我打印了 pkg/route/router.go 的 route 结果是 nil 并报下面的错误

file

2年前 评论
人艰不拆 (作者) 2年前
Oyxiaoxi (楼主) 2年前

8.5会给出答案 挺蒙的

2年前 评论

差点憋出内伤

2年前 评论
Oyxiaoxi (楼主) 2年前

在pkg/route/route.go中用的是局部变量的*mux.Router, 所以在调用route.Get(routeName)时候会出现调用一个空指针的现象

1年前 评论

这是课程里面的一个坑,文章顺序还是有问题

1年前 评论

template: show.gohtml:19: function "Int64ToString" not defined 报模板函数未定义什么鬼 :joy:

1年前 评论
Summer

已修复,请重新照着本文做一遍。

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!