开发者社区> 问答> 正文

字符串变量在Golang模板中始终显示为空

有人可以解释为什么在我的浏览器中检查在我的浏览器中始终{{ .EndUpgradeTime }}调用的字符串变量

{{ end }} 这是我传递来执行模板的结构:

type Planet struct { Id int Uuid string MetalStock string MetalMine string UserId int CreatedAt time.Time LastMetalUpdate time.Time EndUpgradeTime string } 以下是设置EndUpgradeTime字符串的方法:

func (planet *Planet) UpgradeMine() { planet.EndUpgradeTime = "hello!" time.AfterFunc(planet.GetUpgradeTime(), planet.ApplyUpgrade) planet.EndUpgradeTime = time.Now().Add(planet.GetUpgradeTime()).Format("Mon Jan 02 2006 15:04:05 GMT-0700") fmt.Println("timer started") fmt.Println(planet.EndUpgradeTime) }

func (planet *Planet) ApplyUpgrade() { planet.EndUpgradeTime = time.Time{}.Format("Mon Jan 02 2006 15:04:05 GMT-0700") fmt.Println("timer done") fmt.Println(planet.EndUpgradeTime) // update metal stock planet.GetMetalStock() // change metal level planet.UpMetalMine() }

我想做的是一个倒数计时器,该计时器显示金属实际正在升级时完成升级之前的时间,但是我找不到一种很好的方法来做到这一点。如果我仅在客户端进行倒数计时,则如果用户刷新或关闭页面并重新打开它,它将不起作用。

非常感谢!

PS:调用模板的处理程序

package main

import ( "github.com/pdeguing/empire-and-foundation/data" "net/http" )

// GET /dashboard // Show player main dashboard page func dashboard(w http.ResponseWriter, r *http.Request) { sess, err := session(w, r) if err != nil { http.Redirect(w, r, "/login", 302) return } user, err := sess.User() if err != nil { info("cannot get user from session") } planet, err := data.PlanetByUserId(user.Id) if err != nil { info("could not get user planet", err) if planet, err = user.CreatePlanet(); err != nil { danger("could not create user planet:", err) } } newStock := planet.GetMetalStock() info("updated metal stock to :", newStock) generateHTML(w, planet, "layout", "private.navbar", "dashboard") }

展开
收起
游客6ozuanhecbixy 2019-11-28 21:41:36 580 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
Go语言路上踩过的坑 立即下载
gohbase :HBase go客户端 立即下载
Go构建日请求千亿级微服务实践 立即下载