Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rails、HAML和JQuery_Jquery_Ruby On Rails_Haml - Fatal编程技术网

Rails、HAML和JQuery

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数据生成

刚刚开始在Rails/HAML服务器上工作,该服务器在前端使用引导和JQuery。所有页面都是服务器端HAML生成的,然后我们到处使用JQuery,在用户执行操作时给人一种Web2.0的感觉

在一些地方,在我们通过AJAX调用从服务器获取数据后,会在javascript中生成一些复杂的html。也就是说,如果我们有一个表,用户可以对该表的行执行操作。这样的操作之一是从表中删除一行,然后拉入另一行。在拉入另一行的情况下,我们从服务器获取JSON数据,在AJAX成功的情况下,我们使用JSON数据生成新的rowHTML并将其动画化到表中

我的问题是,表行相当复杂,在两个位置生成,serverHAML和javascript。这意味着每次我想稍微修改表,添加一个css类或改变行的外观时,我都需要在服务器和客户端两个位置修改代码

这是一个遗留系统,我一直坚持使用我拥有的框架,这些框架可能能够说服人们引入另一个框架。我能做些什么来解决这个问题

认为最好的方法是让服务器始终生成HTML。也就是说,当我需要添加新行时,不是返回JSON数据,而是返回新行的HTML。这样我就可以使用相同的HAML文件服务器端来生成初始行和任何新行

这对我来说都是新鲜事,这是最好的/唯一的方法吗


提前感谢。

我发现最好的方法是在服务器端生成haml部分并返回

haml :some_partial, :layout => false
然后在jquery成功中:

function(data) {
  html = $(data);
  ...
}

你可以做你正在做的事情,在服务器上生成HTML,使用模板引擎,或者创建一个函数来为你生成行。我发现在服务器上呈现HTML并用$.HTML传递比从json呈现要容易得多。说明了这种技术。