【问题标题】:How to refresh handlebars template context/data?如何刷新车把模板上下文/数据?
【发布时间】:2015-07-03 16:36:56
【问题描述】:

我对 javascript 模板和把手很陌生。我有这样的事情:

<script id="group-container" type="text/x-handlebars-template">
    <fieldset class="group-container">
        <legend>Set {{set_number}}</legend>
        {{>hook_selector}}
        <button type="button" class="delete-gcontainer-button btn">{{text_blocks.buttons.delete_set}}</button>
    </fieldset>
</script>

模板将被实例化多次。每次 set_number 数据值加 1,于是我们就设置了 1,设置了 2,等等。

好吧,用户可以删除一个集合。但是如果他有 3 组并删除了第二组,那么他最终会得到第 1 组和第 3 组。所以我想更新 set_number 以便用户看到第 1 组和第 2 组。换句话说,实时订购。

现在,我可以简单地使用车把机制之外的某种 js 例程来完成它,但我想知道是否有一些内置方法或至少一些首选方法来解决这个(我认为很常见)问题。

【问题讨论】:

    标签: javascript templates template-engine handlebars.js


    【解决方案1】:

    在我看来,这种类型的关注确实属于模板之外。当用户启动操作时,我可以看到模板中的逻辑可能是最初触发的内容,但我不认为模板可以正确执行除此之外的任何操作。也许模板发出信号,设置超时或类似的东西,以导致必要的逻辑开始发生......显示更新逻辑,也就是说,这将是异步的......但我不认为这样的事情正确地作为模板的“关注点”,因为他们应该是它的人。

    在我看来,模板可以包含一些更新“自身”所需的逻辑,并且以一种非常直接的方式。如果要做什么的决定,我们应该说,contextual ...“依赖于更大的图景”...对我来说,那么“模板”应该不再是一个问题直接处理。我只是认为模板的关注点或多或少应该以 "my little piece of HTML" 开始和结束。

    因此,坦率地说,我不会寻找“在 Handlebars 中执行此操作”。而且,这只是我的观点。

    【讨论】:

    • 好的,谢谢。那么在更改数据时是否会简单地重新编译模板?
    猜你喜欢
    • 2017-05-20
    • 2021-09-29
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 2013-08-25
    相关资源
    最近更新 更多