首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何调用jquery-templates中嵌套的{{tmpl}}标签中的函数?

如何调用jquery-templates中嵌套的{{tmpl}}标签中的函数?
EN

Stack Overflow用户
提问于 2011-03-26 01:00:15
回答 1查看 8.3K关注 0票数 9

这是一个基于jquery-tmpl API文档中代码的简单示例。我想使用嵌套的{{tmpl}}标记--这里是"titleTemplate“。我想在外部模板和嵌套模板中使用各种辅助函数。这个示例有一个简单的助手函数,名为"embolden“,它被传递给初始的tmpl()调用。

以下是有效的方法。我可以对titleTemplate中的姓名数据加粗。但它看起来很混乱。有没有更干净的方法来做这件事?既然formatHelpers被传递到最初的tmpl()调用中,那么是否真的有必要将它也传递到{{tmpl}}标记中呢?

代码语言:javascript
复制
<script id="movieTemplate" type="text/x-jquery-tmpl"> 
    {{tmpl($item.data, formatHelpers) "#titleTemplate"}}
    <tr class="detail"><td>Director: ${$item.embolden(Director)}</td></tr>
</script>

<script id="titleTemplate" type="text/x-jquery-tmpl"> 
    <tr class="title"><td>${$item.embolden($item.data.Name)}</td></tr>
</script>

<table><tbody id="movieList"></tbody></table>

<script>
var formatHelpers = { 
    embolden: function(i) {
        return "*" + i + "*";
    }
};

var movies = [
    { Name: "The Red Violin", Director: "François Girard" },
    { Name: "Eyes Wide Shut", Director: "Stanley Kubrick" },
    { Name: "The Inheritance", Director: "Mauro Bolognini" }
];

/* Render the template with the movies data */
$( "#movieTemplate").tmpl(movies, formatHelpers).appendTo("#movieList");
</script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-26 01:31:14

对于您的示例,您所需要做的就是

代码语言:javascript
复制
{{tmpl($item.data, $item) "#titleTemplate"}}

.上的代码示例

另一种方法是在全局范围内定义formatHelpers,您应该能够在模板中直接调用它们。

代码语言:javascript
复制
var formatHelpers = { 
    embolden: function(i) {
        return "*" + i + "*";
    }
};
$(function() {
    var movies = [
        {
        Name: "The Red Violin",
        Director: "François Girard"},
    {
        Name: "Eyes Wide Shut",
        Director: "Stanley Kubrick"},
    {
        Name: "The Inheritance",
        Director: "Mauro Bolognini"}
    ];

    $("#movieTemplate").tmpl(movies).appendTo("#movieList");
});

在您的模板中,您可以执行以下操作:

代码语言:javascript
复制
<script id="movieTemplate" type="text/x-jquery-tmpl"> 
    {{tmpl($item.data) "#titleTemplate"}}
    <tr class="detail"><td>Director: ${formatHelpers.embolden(Director)}</td></tr>
</script>

<script id="titleTemplate" type="text/x-jquery-tmpl"> 
    <tr class="title"><td>${formatHelpers.embolden(Name)}</td></tr>
</script>

.上的代码示例

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5435649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档