第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 golang 的模板實現(xiàn)級聯(lián)下拉菜單

如何使用 golang 的模板實現(xiàn)級聯(lián)下拉菜單

Go
函數(shù)式編程 2021-09-27 17:43:50
設(shè)想:我有一個級聯(lián)場景,其中第二個下拉列表中的值取決于第一個。我有三個模板“布局”、“輸入”和“內(nèi)部”。試圖:我正在對“輸入”模板中第一個下拉列表的更改進行 ajax 調(diào)用,并堅持處理返回的響應(yīng)。目前我找到了一種通過替換第二個下拉列表的 html 來修復(fù)它的方法。但是,我認為這不是更好的處理方式。我想要一些不需要修改 html 的渲染模板。請幫助以更好的方式完成任務(wù)或指向一些維基。只有標準庫謝謝,Layout.html: http : //play.golang.org/p/LikKy6rf3-輸入.html: http : //play.golang.org/p/wM7EpPdXuM內(nèi)部.html: http : //play.golang.org/p/xFpInKZfFTMain.go : http://play.golang.org/p/cxtJU-Lhi1
查看完整描述

1 回答

?
呼啦一陣風

TA貢獻1802條經(jīng)驗 獲得超6個贊

在更高級別上,您有 2 個選擇:

  • 要么發(fā)送下拉列表的所有值(例如作為樹),并在更高級別的下拉列表更改時更改第 2 和第 3 級的值(適用于小列表,不適合大型數(shù)據(jù)集)

  • Or the one you chose: when selection changes, you make an AJAX call (triggered from onchange) and you populate the list from the results.

詳細說明 #2:從 AJAX 調(diào)用結(jié)果填充列表

您還有 2 個選項可以執(zhí)行此操作:

  • AJAX 調(diào)用返回 HTML 調(diào)用,您可以簡單地使用它來替換 HTML<select>標記的內(nèi)部 HTML 。

  • 或者 AJAX 調(diào)用可能只返回數(shù)據(jù)(例如使用 JSON 編碼),并且 Javascript 代碼可以構(gòu)建列表的內(nèi)容。

AJAX 返回 HTML

AJAX 調(diào)用可能會返回需要替換的完整 HTML 代碼作為<select>. 為了在服務(wù)器端實現(xiàn)這一點,您可以創(chuàng)建/分離僅負責生成此 HTML 代碼的 HTML 模板,例如:

{{define "innerList"}}

    {{range .}}

        <option value="{{.Key}}">{{.Text}}</option>

    {{end}}

{{end}}

您只能像這樣執(zhí)行此模板:


// tmpl is the collection of your templates

values := ... // Load/construct the values

tmpl.ExecuteTemplate(w, "innerList", values)

這values是以下結(jié)構(gòu)的一部分:


type Pair struct {

    Key string

    Text string

}

<select>使用 Javascript構(gòu)建內(nèi)容

AJAX 調(diào)用可能會返回一個 JSON 數(shù)據(jù)結(jié)構(gòu),value;text即您<option>自己添加子標簽的數(shù)組/對列表。


要將添加<option>到一個<select>標簽:


var x = document.getElementById("mySelect");

var option = document.createElement("option");

option.value = "1234";

option.text = "Kiwi";

x.add(option);

所以基本上你需要做的是刪除 的當前子項<select>,迭代作為響應(yīng)接收的列表,并添加一個<option>由每個子項構(gòu)造的新標簽。


查看完整回答
反對 回復(fù) 2021-09-27
  • 1 回答
  • 0 關(guān)注
  • 291 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號