ホームページ >バックエンド開発 >Golang >変数の更新時に Go テンプレートの一部を動的に更新するにはどうすればよいですか?

変数の更新時に Go テンプレートの一部を動的に更新するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-25 08:16:30754ブラウズ

How Can I Dynamically Refresh Parts of a Go Template on Variable Updates?

Golang の変数更新時の動的テンプレート更新: ステップバイステップ ガイド

一部のテンプレートを動的に更新する必要があります。特定の変数が更新されたときのテンプレート。Angular.js で可能なものに似ています。提供されたシナリオでは、郵便番号に基づいて住所を取得する AJAX リクエストが作成され、その結果がテンプレートのセクションに表示されます。目標は、ページ全体をリロードせずに、配列である Addresses 値のみを更新することです。

解決策:

テンプレート エンジンはこの機能をサポートしていないため、すぐに使えるように、これを達成するためのステップバイステップのガイドを次に示します:

1.リファクタリング テンプレート:

  • {{define "name"}} アクションまたは {{block "name"} T1 { のいずれかを使用して、アドレスを個別のブロックにレンダリングするテンプレートを分離します。 {end}} アクション (Go 1.6 以降)。

2.ハンドラーの変更:

  • ページ全体のテンプレートまたはアドレス テンプレートのみの実行を担当するハンドラーを作成または変更します。
  • アドレス テンプレートの出力を HTTP に直接送信します。応答ライター。

3.クライアント側の変更:

  • アドレスを更新する必要がある場合は、アドレス テンプレートのみをレンダリングするハンドラーに AJAX リクエストを作成します。
  • AJAX リクエストの応答テキストを含むラッパー要素を指定します。

サンプルは次のとおりです。このアプローチを示す JavaScript コード:

var e = document.getElementById("addressees");
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
    if (xhr.readyState == 4 && xhr.status == 200) {
        e.outerHTML = xhr.responseText;
    }
}
xhr.open("GET", "path-to-addresses-render", true);
try {
    xhr.send();
} catch (err) {
    // handle error
}

これらの手順に従うことで、Golang で動的なテンプレートの更新を実装でき、関連する変数が変更されたときにテンプレートの特定の部分を更新できるようになります。

以上が変数の更新時に Go テンプレートの一部を動的に更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。