我有一个rails应用程序,它使用twitter库来提取推文,并在我的视图中使用jquery逐个显示它们。我不确定将推文从控制器传输到视图的最佳方式是什么。我的两个想法是:
在控制器/模型中取回twitter json,使用jquery将其传递给视图,然后使用dom构建方法构建html。
在控制器/模型中取回twitter json,渲染部分显示带有html的推文列表,并使用jquery传递该html部分。
这些方法中的一种比另一种好吗?有没有更好的方法呢?
任何帮助都会很棒!
答案 0 :(得分:3)
您不必将数据传递给视图,然后渲染为JSON。您可以在控制器中执行此操作:
render :json => tweets
我认为这是官方jQuery Templates plugin的完美用例。主要功能tmpl
有许多关于如何使用它的很好的例子。
我会尝试从他们的文档中快速总结一个示例。基本上,您将HTML模板放在script
标记内,如下所示:
<script id="movieTemplate" type="text/x-jquery-tmpl">
<li><b>${Name}</b> (${ReleaseYear})</li>
</script>
然后,您将获取JSON对象中的数据并将其传递到tmpl
函数中,如下所示:
// movies contains your JSON data
$("#movieTemplate").tmpl(movies).appendTo("#movieList");
此示例假设您有一个ul
元素,其id为movieList,并且会为li
变量中找到的每部电影的列表附加一个movies
元素。
电影变量看起来像这样:
var movies = [
{ Name: "The Red Violin", ReleaseYear: "1998" },
{ Name: "Eyes Wide Shut", ReleaseYear: "1999" },
{ Name: "The Inheritance", ReleaseYear: "1976" }
];
答案 1 :(得分:2)
partials会使结果成为可索引的。
javascript + json的想法应该更容易实现,但不是很多。