gpt4 book ai didi

ruby-on-rails - 使用带有 Sammy.js 的单个模板( Handlebars 或 Mustache)的 Rails 客户端/服务器端渲染

转载 作者:行者123 更新时间:2023-12-01 01:29:54 24 4
gpt4 key购买 nike

我在网上搜索了一段时间寻找教程,但运气不佳。

据我了解,Twitter 使用 Rails 中的单个 Mustache.js 模板在第一个页面加载时从服务器呈现,然后通过他们自己的 ajax 转换系统(很像 sammy.js)。

我可以在 rails 中加载 Handlebars 和 sammy.js,但我不知道如何从服务器(rails)和客户端(sammy)端共享单个模板文件。

最佳答案

我没有亲自构建任何使用相同模板服务器端和客户端的东西,但这是我能想到的一种方法。

假设您有一个图像部分 (_image.mustache):

<div class="image">
<a href="{{ view_url }}">
<img height="{{ height }}" width="{{ width }}" src="{{ src }}" />
</a>
</div>

当您在服务器端呈现页面时,您可以将其用作普通部分并将其插入到 Mustache 中。然后你也可以在脚本标签中渲染它以使用 Resig micro-templating scheme .
{{{image_js_template}}}

在您的 Mustache View 类中:
def image_js_template
content_tag :script, :type => "template", :id => "image-template" do
render :text => self.partial('image')
end
end

这应该呈现未插值的模板({{ 仍在文本中)。现在你可以通过它的 id 在你的 Javascript 中选择这个模板。在backbone.js 中,您可以执行以下操作:
class Views.AllImageList extends Backbone.View
initialize: (options) ->
@template = $('#image-template').html()

我没有使用过 Sammy.js,但它似乎希望它的所有模板都是公开可用的,这可能会带来问题。但是,您仍然可以使用上述技术并直接传递 render() 和 partial() jQuery 对象(如 here 所示)。

这是基本思想,但您可能可以做很多事情来使这更加无缝。我会结帐 the Jammit section on using templates ,特别是关于使用 Mustache 的部分。还有 ICanHaz.js有一种方法可以简化客户端 Mustache 模板的使用。

关于ruby-on-rails - 使用带有 Sammy.js 的单个模板( Handlebars 或 Mustache)的 Rails 客户端/服务器端渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5478654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com