Go での動的部分テンプレート更新
質問:
動的に更新することは可能ですか?変数が指定されている場合、Go テンプレートの特定の部分のみ更新情報?
答え:
Go のデフォルトのテンプレート エンジンはこの機能をネイティブにサポートしていませんが、カスタム実装は可能です。ステップバイステップのガイドは次のとおりです:
1.テンプレートのリファクタリング:
{{define "name"}} アクションと {{template "name"}} アクションを使用して、Address 配列を個別のテンプレートにレンダリングするテンプレートを分離します。
2.ハンドラーの変更/作成:
スタンドアロンのアドレス テンプレートを排他的に実行し、その HTML を応答に直接出力するハンドラーを作成します。このハンドラーは、ページ全体と部分テンプレートの両方を処理することも、アドレス テンプレート専用にすることもできます。
3.クライアント側の変更:
アドレス配列を更新する必要がある場合、アドレス テンプレートをレンダリングするハンドラーへの AJAX 呼び出しをトリガーします。応答を受信したら、Address 要素のラッパー タグ内のコンテンツを応答 HTML に置き換えます。
AJAX 呼び出しと DOM 操作のサンプル 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 }
追加注:
Gowut などのサードパーティ ライブラリは、部分テンプレートに同様の機能を提供しますリフレッシュします。詳細については、Gowut ソース コード、特に js.go ファイル内の rerenderComp() JavaScript 関数を参照してください。
以上がGo テンプレートは部分的に動的に更新できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。