2015-08-14 18 views
10

Thông tin cơ bảncùng mã nhưng khác nhau kết quả sử dụng gin + go-mẫu

  • Go phiên bản: go1.4.2 darwin/amd64
  • Hệ điều hành: Mac OS X 10.10.5

Tôi đang làm việc trên một dự án Web nhỏ được viết dựa trên , đigin. Đây là mã golang của tôi. Sau khi chạy go run test.go chúng tôi có một máy chủ web, mà đang lắng nghe trên 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 
} 

Mã html tạo ra trong back-end nên chứa một mẫu được sử dụng bởi front-end javascript engine (Giả sử Angular.js).

Vì vậy, các mẫu mã là trong script thẻ, chỉ cần như thế này:

Một phần của mẫu/index.html

<script type="text/template" charset="utf-8"> 
    <div data="{{.scheme}}://{{.domain}}/qr"></div> 
    <div data="{{.scheme}}://{{.domain}}/qr"></div> <!-- problem here --> 
</script> 

Khi {{.domain}} được sử dụng ở lần thứ hai, tôi có kết quả khác nhau . Tôi đã làm mới trình duyệt và kiểm tra mã nguồn. Sau đó, tôi nhận điều này:

trình duyệt mã nguồn kết quả

<script type="text/template" charset="utf-8"> 
    <div data="http://meican.loc/qr"></div> 
    <div data="http://"meican.loc"/qr"></div> <!-- problems here --> 
</script> 

Thứ hai div có thêm 2 dấu ngoặc kép.

Tại sao điều này xảy ra? Và làm thế nào để giải quyết vấn đề này?

Trả lời

Các vấn đề liên quan