Основная информация
- Версия go: go1.4.2 darwin / amd64
- Операционная система: Mac OS X 10.10.5
Я работаю над небольшим веб-проектом, написанным на основе go и gin. Вот мой код голанга. После запуска go run test.go
у нас есть веб-сервер, который прослушивает 8089.
Golang test.go
package main
import "github.com/gin-gonic/gin"
import "net/http"
func main() {
router := gin.Default()
router.LoadHTMLGlob("templates/*")
router.GET("/index", func(c *gin.Context) {
c.HTML(http.StatusOK, "index.html", gin.H{
"scheme": "http",
"domain": "meican.loc",
})
})
router.Run(":8089") // listen and serve on 0.0.0.0:8089
}
HTML-код, сгенерированный в серверной части, должен содержать шаблон, используемый механизмом внешнего интерфейса javascript (скажем, Angular.js).
Итак, код шаблона находится в теге script
, вот так:
Часть templates / index.html
<script type="text/template" charset="utf-8">
<div data="{{.scheme}}://{{.domain}}/qr"></div>
<div data="{{.scheme}}://{{.domain}}/qr"></div> <!-- problem here -->
</script>
При повторном использовании {{.domain}}
результат был другим. Я обновил браузер и проверил исходный код. Потом у меня получилось вот это:
Результат исходного кода браузера
<script type="text/template" charset="utf-8">
<div data="http://meican.loc/qr"></div>
<div data="http://"meican.loc"/qr"></div> <!-- problems here -->
</script>
У второго div
есть 2 лишних двойных кавычки.
Почему так происходит? И как решить эту проблему?