将结构体数组传递给HTML-Template来填充下拉菜单。

问题描述 投票:-1回答:1

我必须将我的Struct Array传给我的HTML-Template来填充一个下拉菜单,我甚至不能传一个字符串来填充。

下拉菜单用这段代码得到新的行,但没有数据。

这是我的Index.html代码。

$(document).ready(function() {
  $("#getKammer").on('click', function() {
    $.ajax({
      url: "http://localhost:8080/getKammer",
      method: "GET",
      success: function(data) {
        var $dropdown = $("#Kammer");
        $dropdown.append($("<option />").val(data).text(this.name));
        $("#getKammer").prop('disabled', true);
      }
    });
  });
});

这里是Go的代码:

type klimakammer struct {
    name        string
    hersteller  string
    ip          string
    sollTemp    string
    istTemp     string
    sollFcht    string
    istFcht     string
    kammerstart bool
    kammerstop  bool
}

//Ct01 Klimakammern erstellen
var Ct01 = klimakammer{"ct01", "weiss", "10.0.62.22", "", "", "", "", false, true}

//Kammern - Fill Klimakammer Array
var Kammern = []klimakammer{
    Ct01,
}

var tmpl = template.Must(template.New("tmpl").ParseFiles("./static/Index.html"))

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        if err := tmpl.ExecuteTemplate(w, "Index.html", nil); err != nil {
            http.Error(w, err.Error(), http.StatusInternalServerError)
        }
    })

    http.ListenAndServe(":8080", nil)

    http.HandleFunc("/getKammer", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintln(w, Ct01.hersteller)
    })
}
javascript jquery ajax go go-templates
1个回答
-1
投票

JSON 是关键。你需要一个共同的格式来共享你的程序脚本之间的数据.将你的数组转换为JSON字符串,然后将其作为响应体返回,内容类型为 application/json. 然后你可以用js处理它。

© www.soinside.com 2019 - 2024. All rights reserved.