2011-11-18 108 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部分包含在同一個文件中並不理想。我編輯了我的第一篇文章,以表明如果有人感興趣。再次感謝提示 –