Rails、HAML和JQuery
刚刚开始在Rails/HAML服务器上工作,该服务器在前端使用引导和JQuery。所有页面都是服务器端HAML生成的,然后我们到处使用JQuery,在用户执行操作时给人一种Web2.0的感觉 在一些地方,在我们通过AJAX调用从服务器获取数据后,会在javascript中生成一些复杂的html。也就是说,如果我们有一个表,用户可以对该表的行执行操作。这样的操作之一是从表中删除一行,然后拉入另一行。在拉入另一行的情况下,我们从服务器获取JSON数据,在AJAX成功的情况下,我们使用JSON数据生成新的rowHTML并将其动画化到表中 我的问题是,表行相当复杂,在两个位置生成,serverHAML和javascript。这意味着每次我想稍微修改表,添加一个css类或改变行的外观时,我都需要在服务器和客户端两个位置修改代码 这是一个遗留系统,我一直坚持使用我拥有的框架,这些框架可能能够说服人们引入另一个框架。我能做些什么来解决这个问题 认为最好的方法是让服务器始终生成HTML。也就是说,当我需要添加新行时,不是返回JSON数据,而是返回新行的HTML。这样我就可以使用相同的HAML文件服务器端来生成初始行和任何新行 这对我来说都是新鲜事,这是最好的/唯一的方法吗Rails、HAML和JQuery,jquery,ruby-on-rails,haml,Jquery,Ruby On Rails,Haml,刚刚开始在Rails/HAML服务器上工作,该服务器在前端使用引导和JQuery。所有页面都是服务器端HAML生成的,然后我们到处使用JQuery,在用户执行操作时给人一种Web2.0的感觉 在一些地方,在我们通过AJAX调用从服务器获取数据后,会在javascript中生成一些复杂的html。也就是说,如果我们有一个表,用户可以对该表的行执行操作。这样的操作之一是从表中删除一行,然后拉入另一行。在拉入另一行的情况下,我们从服务器获取JSON数据,在AJAX成功的情况下,我们使用JSON数据生成
提前感谢。我发现最好的方法是在服务器端生成haml部分并返回
haml :some_partial, :layout => false
然后在jquery成功中:
function(data) {
html = $(data);
...
}
你可以做你正在做的事情,在服务器上生成HTML,使用模板引擎,或者创建一个函数来为你生成行。我发现在服务器上呈现HTML并用$.HTML传递比从json呈现要容易得多。说明了这种技术。