2011-11-18 107 views
0

我正在使用sinatra和haml模板的项目。我希望能够使用JQuery追加一些haml部分。我希望它添加到一个js函数被一个事件像这样Sinatra + haml + jQuery,从javascript渲染haml/jquery

....addEventListener(myWidget, 'click', function() { 
    $('targetDiv').append(RenderHamlTempalte('/my/file/location/'); 
}); 

....addEventListener(myWidget, 'click', function() { 
    $('targetDiv').append(RenderHamlTempalte('/my/file/location/', {options: here, options: here); 
}); 

我已签出在github上一些相关的项目,但确实无法找到的东西触发正确地做到这一点。

感谢任何信息

UPDATE:

这里是我结束了

var url = '/update&my&div/' + param; 
$('.my-div').load(url); 

,并打算随后在我屈app.rb我就可以回到我的HAML部分

get ''/update&my&div/:params' do 
    # do some stuff 
    @make_variables_happen 
    haml :my_partial 
end 

回答

1

一种方法是使用如下工具:https://github.com/uglyog/clientside-haml-js 你必须在<script type="text/haml-template" id="template_id"> YOUR PARTIAL GOES HERE </script>中包裹你的partials并将它们追加到你的html页面的某个地方(我通常会将它们添加到页面底部)。然后,您可以从JavaScript引用它们有:

var tmpl = haml.compileHaml('template_id'); 

,然后你可以传递数据:

var html = tmpl({option1: value1, option1: value1}); 

或根据您的例子:

$('targetDiv').append(tmpl({option1: value1, option1: value1})); 
+0

感谢您的答复。我结束了一个稍微不同的路线,因为不得不将我的haml部分包含在同一个文件中并不理想。我编辑了我的第一篇文章,以表明如果有人感兴趣。再次感谢提示 –