jQuery 模板中的条件

发布于 2024-11-17 22:47:43 字数 1082 浏览 2 评论 0原文

我有一个像这样的 jquery 模板设置:

<script id='tmpl-video_list' type='text/x-jquery-tmpl'>
<li>
    <a href='${url}'><br/>
        <span class='image_border'>
            <span class='image_container'>
                <img src='${thumb}' alt='' title='' />
            </span>
        </span>
    </a>
    <div class='search_block'>
        <span class='name'>${caster_name}</span>
            <a href='${url}'>
                <span class='search_title'>${title}</span>
            </a>
    </div>
</li>

我发送的数据看起来像这样:

{
    _index:i,
    url: url,
    thumb: thumb,
    name: name,
    title: title
}

所有这些都运行良好。我的问题是,是否有办法在那里放置条件。我知道 {{if}} 等文档中所述的内容,但我想知道你是否可以做这样的事情:

{{if ${_index}+1 % 5 == 0}} class='last_search_video' {{/if}}

我尝试过,但没有成功。实际上,我不喜欢对象中的 _index,但我想我应该对此进行更改。我认为当前索引已传递到模板的循环中,但我不知道。

我还没有使用 jQuery 的模板插件,所以如果有人知道更好的插件,请随意推荐另一个。

I have a jquery template setup like this:

<script id='tmpl-video_list' type='text/x-jquery-tmpl'>
<li>
    <a href='${url}'><br/>
        <span class='image_border'>
            <span class='image_container'>
                <img src='${thumb}' alt='' title='' />
            </span>
        </span>
    </a>
    <div class='search_block'>
        <span class='name'>${caster_name}</span>
            <a href='${url}'>
                <span class='search_title'>${title}</span>
            </a>
    </div>
</li>

And the data I'm sending looks something like this:

{
    _index:i,
    url: url,
    thumb: thumb,
    name: name,
    title: title
}

All That is working great. My question is that if there is a way to put a conditional in there. I know about the {{if}} and such as stated in the docs but I'm wondering if you can do something like this:

{{if ${_index}+1 % 5 == 0}} class='last_search_video' {{/if}}

I tried that and it didn't work. I actually don't like the _index in my object but I thought I'd give that a change. I'm thinking the current index is passed into the loop for the template but I have no idea.

I'm not married to jQuery's templating plugin so if someone knows a better plugin please feel free to suggest another one.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

世态炎凉 2024-11-24 22:47:43

我实际上不喜欢我的 _index
对象

好消息!你实际上并不需要它。将这个优秀的问题和答案适应您的问题,您需要做一些事情才能找到当前项目的索引您的渲染更容易:

  1. options 参数中的函数添加到 .tmpl(),您可以使用它来检索当前项目的索引:

    $("#tmpl-video_list").tmpl(数据, {
        getIndex:函数(项目){
            返回 $.inArray(项目, 数据);
        } 
    });
    
  2. 修改您的模板以使用该功能:

    <脚本 id='tmpl-video_list' type='text/x-jquery-tmpl'>
        
  3. ;

这是一个简化的工作示例:http:// /jsfiddle.net/gsd6D/

I actually don't like the _index in my
object

Good news! You don't actually need it. Adapting this excellent question and answer to your problem, you need to do a few things to make finding the index of the current item you're rendering easier:

  1. Add a function in the options parameter to .tmpl() that you can use to retrieve the index of the current item:

    $("#tmpl-video_list").tmpl(data, {
        getIndex: function(item) {
            return $.inArray(item, data);
        } 
    });
    
  2. Modify your template to make use of that function:

    <script id='tmpl-video_list' type='text/x-jquery-tmpl'>
        <li {{if $item.getIndex($item.data) + 1 % 5 === 0 }} class='last_search_video' {{/if}}>
            <!-- etc., etc., -->
        </li>
    </script>
    

Here's a simplified working sample: http://jsfiddle.net/gsd6D/

清浅ˋ旧时光 2024-11-24 22:47:43

您不必在 {{if}} 中“模板化”_index 属性。你可以只写

{{if (_index + 1) % 5 == 0}} class='last_search_video' {{/if}}

You don't have to "templatize" the _index property in the {{if}}. You can just write

{{if (_index + 1) % 5 == 0}} class='last_search_video' {{/if}}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文