Mengurus Pembolehubah Global dalam HTML/Templat Go
Apabila mencipta pembolehubah dalam html/template Go, skopnya biasanya terhad kepada blok bersyarat di mana ia ditakrifkan. Untuk mengatasinya dan berkongsi pembolehubah merentas berbilang bahagian templat, pendekatan alternatif diperlukan.
Dalam Go 1.11, mekanisme baharu telah diperkenalkan untuk mengubah suai pembolehubah templat.
Mencipta Global Pembolehubah:
Untuk menentukan pembolehubah global, gunakan operator tugasan (:=):
{{$globalVar := value}}
Mengubah Suai Pembolehubah Global:
Untuk mengubah nilai pembolehubah global, gunakan operator penugasan (=):
{{$globalVar = newValue}}
Kes Penggunaan dalam Blok Bersyarat:
Jika pembolehubah global adalah dibuat di luar blok {{jika}} tetapi diubah suai di dalamnya, perubahan menjadi kelihatan selepas blok.
{{$globalVar := 0}} Before: {{$globalVar}} {{if .UserData}} {{$globalVar = .UserData.UserId}} [<a href="#ask_question">Inside {{$globalVar}}</a>] {{else}} {{$globalVar = 0}} {{end}} [<a href="#ask_question">Outside {{$globalVar}}</a>]
Contoh:
Pertimbangkan templat berikut :
m := map[string]interface{}{} t := template.Must(template.New("").Parse(src)) m["UserData"] = UserData{99} if err := t.Execute(os.Stdout, m); err != nil { panic(err) }
Dengan sumber berikut:
Before: {{$globalVar}} [<a href="#ask_question">Inside {{$globalVar}}</a>] [<a href="#ask_question">Outside {{$globalVar}}</a>]
Outputnya ialah:
Before: 0 [<a href="#ask_question">Inside 99</a>] [<a href="#ask_question">Outside 99</a>]
Ini menunjukkan keupayaan untuk mengubah suai pembolehubah global dan mempunyai perubahan tercermin di seluruh templat.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengurus dan Mengubah Suai Pembolehubah Global dalam Templat HTML Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!