【问题标题】:How to avoid duplicate rendering of DOM elements in jsrender如何避免在jsrender中重复渲染DOM元素
【发布时间】:2023-03-19 11:01:01
【问题描述】:

是否可以在渲染 jsrender.template 时检查重复的 Dom 元素?

例如:

  1. 如果元素不存在使用这个:

    <li id="liv_{{:nid}}">
        <div class="qwqw"><a href="#"></a></div>
        <div class="">
            <p class="we">{{:spd}} <span>mph (todo)</span></p>
        </div>
    
        <div class="clear"></div>
      </li>
    
  2. 如果元素“liv1”存在,则更新视图并且不执行步骤 1。

【问题讨论】:

    标签: jsrender


    【解决方案1】:

    尝试使用helper functions

    模板伪代码:

    {{if ~domElementExists(id)}}
    ...
    {{/if}}
    

    助手的伪代码

    $.views.helpers({
    
        domElementExists: function( id ) {
    
            return $("#liv_" + id).length > 0;
    
        }
    });
    

    【讨论】:

    • 但请注意,当 jsrender 代码运行时,DOM 尚未更新,因此助手会在插入新的 JsRender 输出之前查看 DOM。请参阅 stackoverflow.com/a/28351083/1054484 以了解基于数据而非 DOM 的帮助器示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 2020-12-21
    • 1970-01-01
    • 2011-11-18
    • 2020-03-04
    • 1970-01-01
    • 2020-12-13
    相关资源
    最近更新 更多