加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails客户端/服务器端使用单个模板(Handlebars

发布时间:2020-12-17 02:28:53 所属栏目:百科 来源:网络整理
导读:我在网上搜索了一段时间寻找教程,但没有太多运气. 根据我的理解,Twitter在rails中使用单个Mustache.js模板在第一页加载时从服务器渲染,然后通过他们自己的ajax过渡系统(很像sammy.js). 我可以把把手和sammy.js加载到rails中,但我无法弄清楚如何从服务器(rail
我在网上搜索了一段时间寻找教程,但没有太多运气.

根据我的理解,Twitter在rails中使用单个Mustache.js模板在第一页加载时从服务器渲染,然后通过他们自己的ajax过渡系统(很像sammy.js).

我可以把把手和sammy.js加载到rails中,但我无法弄清楚如何从服务器(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视图类中:

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模板使用的方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读