1

刚开始在前端使用 Bootstrap 和 JQuery 的 Rails/HAML 服务器上工作。所有页面都是在服务器端(HAML)生成的,然后我们在这里和那里使用 JQuery,以便在用户执行操作时给人一种 Web 2.0 的感觉。

在我们进行 AJAX 调用以从服务器获取数据后,我们在一些地方使用 javascript 生成了一些复杂的 html。IE 在我们有一个表的情况下,用户可以对表的行执行操作。一个这样的动作是从表中删除一行并拉入另一行。在拉入另一行的情况下,我们从服务器获取 JSON 数据,在 AJAX 成功时,我们使用 JSON 数据生成新行 (HTML) 并将其动画到表中。

我的问题是表行相当复杂,并且在两个地方生成,服务器(HAML)和javascript。这意味着每次我想稍微改变一下表格(添加一个 css 类或改变一行的外观)我需要在两个地方更改代码,服务器和客户端。

这是一个遗留系统,我坚持使用现有的框架(也许能够说服人们加入另一个)。我能做些什么来解决这个问题?

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

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

提前致谢。

4

1 回答 1

0

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

haml :some_partial, :layout => false

然后在jquery成功:

function(data) {
  html = $(data);
  ...
}
于 2013-03-25T20:39:42.000 回答