1

数据结构定义为:

type TopicModels struct {
    Topics string
}

viewHandler 是:

func viewHandler(w http.ResponseWriter, r *http.Request) {
    page, _ := loadTopicModels("topics")

    templates := template.Must(template.ParseGlob("./templates/*"))
    err := templates.ExecuteTemplate(w, "indexPage", page)
    if err != nil {
        http.Error(w, err.Error(), http.StatusInternalServerError)
        return
    }
}

对于页面变量,返回值为:

return &TopicModels{Topics: "test"}, nil

然后,在 html 中,我使用 {{.Topics}} 来显示里面的值。但是,我没有得到任何值,这意味着 null。

模板是:

{{define "indexPage"}}
<html>
{{template "header"}}
<body onload="initialize()">
    <nav class="navbar navbar-default">
        <div class="container-fluid">
            <div class="navbar-header">
                <a class="navbar-brand" href="#">Welcome to TDT Project</a>
            </div>
        </div>
    </nav>

    <div class="block-center">
        <div>
            <div class="btn-group-vertical float-left">
                <a href="#" class="btn btn-default">{{.Topics}}</a>

                <p>Date: <input type="text" id="datepicker"></p>
            </div>
            <div id="googleMap"></div>
        </div>

        <div class="bot-block">
            Global Semantic Graph
        </div>
    </div>
</body>
</html>
{{end}}

其中 {{header}} 是另一个 html 文件,其中包含

<link rel="stylesheet" type="text/css" href="/static/css/bootstrap.css">

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>

使用 ExecuteTemplate() 时有什么需要注意的吗?我该如何解决这个问题?

4

0 回答 0