0

プロジェクト用のかなり複雑な通知システムの構築に取り組んでおり、さまざまな種類の通知のテンプレートをデータベースに保存する最良の方法を見つけたいと考えています。

私はいくつかの同様の投稿を見つけました 変数を使用してノックアウトテンプレートを保存すると、ビューモデルをバインドする前に、可能なすべてのテンプレートを DOM にロードすることが提案されます。この解決策はうまくいきますが、あまりうまく拡張できないようです。ノックアウトは ajax 呼び出しに基づいてテンプレートをロードする方法を提供しますか?

4

1 に答える 1

1

Knockoutには、独自のテンプレートエンジンまたはカスタムテンプレートソースを追加できる拡張ポイントがあります。

この機能を使用して、デフォルトでJavaScriptオブジェクトで最初にテンプレート文字列を検索するテンプレートエンジンを作成するプロジェクトがいくつかあります。あなたがそれをすることができる多くの方法があります。これが私が私の実装した方法です:https ://github.com/rniemeyer/SamplePresentation/blob/master/js/stringTemplateEngine.js 。

サーバーからテンプレートをロードした後、次のようにします。

ko.templates[templateName] = response;

いつでもこのオブジェクトからテンプレートを簡単に削除できます。

実用的なサンプルは次のとおりです:http://jsfiddle.net/rniemeyer/erytN/

于 2013-02-22T19:49:33.983 に答える