8

組み込みのテンプレートシステムでknockout.jsを使用しています。テンプレートを次のように定義します。

<script type="text/html" id="subjectItemView">
   <span class="name" data-bind="text: subjectName" />
</script>

次に、テンプレートのIDを使用するので、これをスクリプトの一部として使用する必要があります。

シングルページアプリケーションにこれらのテンプレートのかなりの数があり、最近、require.jsを使用して、必要な場合にのみ必要なスクリプトをロードするようになりました。テンプレートでも同じことをしたいと思います。できればrequire.jsを使用して、モジュールがテンプレートを依存関係としてリストできるようにします。

どうすればよいですか?

4

1 に答える 1

10

require.jsテキストプラグインを使用しています:http://requirejs.org/docs/api.html#text。テンプレートテキストを取得したら、それを新しいスクリプトタグ(text/htmljavascriptまたはそれ以外のタイプ)でページに追加できます。

私は実際に文字列を直接処理する変更されたテンプレートエンジンを使用しているので、ページに余分なスクリプトタグを追加する必要はありません。

私のコードは次のようになります。

    this.activate = function() {
        //load view model from the server
        if (!this.loaded) {
            require(["modules/" + name, "text!../templates/" + self.template + ".html"], function(Module, template) {
                ko.templates[self.template] = template;
                self.data(typeof Module === "function" ? new Module() : Module);
                self.loaded = true;
            });
        }
    };

私が使用しているstringTemplateEngineは次のようになります:https ://github.com/rniemeyer/SamplePresentation/blob/master/js/stringTemplateEngine.js

于 2012-09-21T01:53:33.677 に答える