我正在使用Backbone.js为我的项目构建javascript代码,我喜欢在后端(Rails)上使用HAML作为模板,所以我想将它用于主干视图模板。我知道Javascript有几个HAML端口,比如https://github.com/creationix/haml-js和backbone很容易就支持JST和mustache。
使用haml模板的最好方法是什么?
在客户端使用HAML有什么缺点吗?性能,额外的脚本加载时间(由jammit等资产打包工具负责)
发布于 2011-03-25 00:12:37
我知道你已经提到了,但我建议对Jammit使用haml-js。只需在javascripts和assets.yml中包含haml.js,添加template_function: Haml
,并将模板文件包含到包中。例如:
javascript_templates:
- app/views/**/*.jst.haml
然后,您可以在视图中包含这个包(= include_javascripts :javascript_templates
),Jammit会将任何.jst.haml文件打包到window.JST['file/path']
中。(如果您查看页面源代码,您应该会看到一个类似<script src="/assets/javascript_templates.jst" type="text/javascript"></script>
的javascript文件)
要使用这些模板,只需调用Jammit创建的JST之一。即
$('div').html(JST['file/path']({ foo: 'Hello', bar: 'World' }));
Jammit将使用Haml-js模板函数函数来呈现模板。
注意:请务必在Gemfile中指向Jammit的github代码库,以获取支持haml-js工作所必需的换行符的最新版本。
发布于 2011-07-30 08:14:53
我正要给haml-coffee一个机会。(没有双关语的意思)我对coffeescript赞不绝口;而且它现在是Rails 3.1中的一个默认设置。现在,我可以将coffeescript嵌入到我最喜欢的模板语言中,并对其进行预编译。
哦,那个joy..现在让它工作。
发布于 2011-03-10 16:48:48
我知道这在一定程度上绕过了这个问题,但我们开始吧:)
在我的rails应用程序中,我对后端的所有视图都使用haml。这太棒了。由于某些原因(主要是i18n),我不喜欢在客户端使用模板。我是这样做的:
模板在ruby haml中创建所有模板,并将它们存储到带有时髦类型的脚本标记中(我使用
,加载存储的模板并将其附加到视图中
你只需要和html打交道,而jQuery在这方面是很棒的。对于一些不需要i18n的视图,我使用下划线模板,因为它已经存在。
至于haml模板的性能,八字胡和车把似乎更快。
https://stackoverflow.com/questions/5254396
复制相似问题