我见过许多与此主题相关的指南,例如this one,当用户点击指向特定控制器方法的链接时,这些指南都专注于渲染部分。
如果链接点击不是我的触发事件怎么办?在我的情况下,如果用户从下拉列表中选择一个项目,我想使用他们选择的数据渲染部分内容。
这是我的非工作代码 -
// this is the event that is fired when a user clicks on a suggestion
$('.typeahead').bind('typeahead:selected', function(event, datum, name) {
$('#my-list').html("<%= escape_javascript(render(:partial => 'some_block')) %>");
});
如果我将此文件命名为“blah.js”,它只是将Ruby代码作为字符串呈现,如果我将其命名为“blah.js.erb”,则会出现错误,指出没有render
方法类...
我是否需要在事件函数中进行特定的AJAX调用?
答案 0 :(得分:1)
是的,你需要ajax调用, 有两个原因,首先你没有任何与你的渲染相关的REST事件,所以你不能使用js.erb扩展,其次你不能使用.js扩展来渲染
所以,你需要的是获取数据,从服务器获取数据并显示你需要使用
$.get(function(){
url: ''
data: ''
success: ''
}); function of ajax.
请参阅此文档