首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sinatra + haml + jQuery,从javascript/jquery中渲染haml

Sinatra + haml + jQuery,从javascript/jquery中渲染haml
EN

Stack Overflow用户
提问于 2011-11-18 08:05:20
回答 1查看 879关注 0票数 0

我正在做一个使用sinatra与haml作为模板的项目。我希望能够使用JQuery附加一些我的haml部分。我希望将此添加到由如下事件触发的js函数中

代码语言:javascript
复制
....addEventListener(myWidget, 'click', function() {
    $('targetDiv').append(RenderHamlTempalte('/my/file/location/');
});

代码语言:javascript
复制
....addEventListener(myWidget, 'click', function() {
    $('targetDiv').append(RenderHamlTempalte('/my/file/location/', {options: here, options: here);
});

我已经在github上查看了一些相关的项目,但真的找不到合适的东西来做这件事。

感谢您提供的信息

更新:

这就是我最终要做的

代码语言:javascript
复制
var url = '/update&my&div/' + param;
$('.my-div').load(url);

然后在我的sinatra app.rb中,我可以返回我的haml partial

代码语言:javascript
复制
get ''/update&my&div/:params' do
    # do some stuff
    @make_variables_happen
    haml :my_partial
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-18 11:48:11

要做到这一点,一种方法是使用像这样的工具:https://github.com/uglyog/clientside-haml-js你必须用<script type="text/haml-template" id="template_id"> YOUR PARTIAL GOES HERE </script>包装你的部分参数,并将它们附加到你的html页面中的某个地方(我通常将它们添加到页面的底部)。然后,您可以使用以下命令从JavaScript引用它们:

代码语言:javascript
复制
 var tmpl = haml.compileHaml('template_id');

然后,您可以使用以下命令传递数据:

代码语言:javascript
复制
var html = tmpl({option1: value1, option1: value1});

或者基于你的例子:

代码语言:javascript
复制
$('targetDiv').append(tmpl({option1: value1, option1: value1}));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8176155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档