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>")
    }
});

在每种情况下,模板只会被编译一次,并且是私有的。

第一种情况和第二种情况类似,但第二种情况允许您以编程方式控制渲染。编译标记时完成编译。

第三个让你有几个私人模板......

于 2013-01-09T17:57:04.417 回答