-
Notifications
You must be signed in to change notification settings - Fork 7.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Gin do not support javascript ? #3869
Comments
Please add the expected effect and actual effect, at present, I can't judge your needs by looking at the issue. |
Hi,Edited . As you can see in the Actual result the "script" codes were missed. |
HTML natively supports <script> elements. You shouldn't use {{}} this way; {{}} is used as a key to match replacement text. follow the steps below to delete, you can achieve your desired effect: - {{/*
<script>
var x;
var txt="";
var person={{.JsonParam}}
for (x in person){
txt=txt + person[x].a;
}
document.getElementById("demo").innerHTML=txt;
</script>
- */}} There is problem with your javascript usage. You need to use a struct to specify an object when using a template. pls check your javascript code. Code that can be used for reference: directory structure: .
├── main.go
└── templates
└── test.tmpl package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
type JsonParam struct {
X int64 `json:"x"`
Y int64 `json:"y"`
}
func main() {
router := gin.Default()
router.LoadHTMLGlob("templates/*")
router.GET("/test", func(c *gin.Context) {
c.HTML(http.StatusOK, "test.tmpl", gin.H{
"title": "test",
"MyParam":"MyParam",
"JsonParam": []JsonParam{{X: 1,Y: 2},{X: 3,Y: 4}},
})
})
router.Run(":8080")
} {{define "test.tmpl"}}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>posts/index</title>
</head>
<body>
<h1>{{.title}}</h1>
<h3>{{.MyParam}}</h3>
<h3>{{.JsonParam}}</h3>
<div id="demo"></div>
<script>
var txt = 0;
var person={{.JsonParam}}
for (item of person){
txt = txt + item.x;
console.log(item);
}
console.log(txt);
document.getElementById("demo").innerHTML=txt;
</script>
</body>
</html>
{{end}} |
Thanks,It was resloved! |
If the issue has been resolved,pls close the issue |
Description
If I added javascript into the html template file ,It will not appear in the view ?
How to reproduce
Expectations
Actual result
If I added javascript into the html template file ,It will not appear in the view ?
Environment
The text was updated successfully, but these errors were encountered: