Giter VIP home page Giter VIP logo

Comments (5)

RedCrazyGhost avatar RedCrazyGhost commented on April 27, 2024

Please add the expected effect and actual effect, at present, I can't judge your needs by looking at the issue.

from gin.

devgis avatar devgis commented on April 27, 2024

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.

from gin.

RedCrazyGhost avatar RedCrazyGhost commented on April 27, 2024

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}}

from gin.

devgis avatar devgis commented on April 27, 2024

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!

from gin.

RedCrazyGhost avatar RedCrazyGhost commented on April 27, 2024

If the issue has been resolved,pls close the issue

from gin.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.