0

テンプレート専用のヘルパーを持つ構文があるようですが、逆の構文はありますか? 特定のテンプレートを使用するタグがあり、そのテンプレート (論理的に言えば) はタグによってのみ使用されます。

$.templates({
  link_template: "<a href='{{:link}}' class='{{:klass}}'>{{:text}}</a>"
});

$.views.tags({
link_to: function (link, klass, text) {
    return $.render.link_template({link: link, klass: klass, text: text});
}
});

テンプレートを単なる文字列にすることを検討しましたが、呼び出しごとにコンパイルされます。テンプレートをコンパイルする利点を得たいと思います (基本的に、現在持っているもの - タグ内のテンプレートをどうにかして隠したいだけです)。

4

1 に答える 1

1

ここにいくつかの変種があります:

$.views.tags({
    link_to1: {
        template: "<a href='{{:link}}' class='{{:klass}}'>{{:text}}</a>"
    },
    link_to2: {
        render: function (link, klass, text) {
            return this.template.render({link: link, klass: klass, text: text});
        },
        template: "<a href='{{:link}}' class='{{:klass}}'>{{:text}}</a>"
    },
    link_to3: {
        render: function (link, klass, text) {
            return this.myTemplate.render({link: link, klass: klass, text: text});
        },
        myTemplate: $.templates("<a href='{{:link}}' class='{{:klass}}'>{{:text}}</a>")
    }
});

いずれの場合も、テンプレートは一度だけコンパイルされ、非公開になります。

最初のケースと 2 番目のケースは似ていますが、2 番目のケースではレンダリングをプログラムで制御できます。タグのコンパイル時にコンパイルが実行されます。

3 つ目は、いくつかのプライベート テンプレートを持つことができます...

于 2013-01-09T17:57:04.417 に答える