如何从json为100个项目创建html而不创建100个单个html文件?

我开发了一个带有phonegap和jquery mobile的应用程序。 我有100个项目,需要单页。 html对所有人来说都是一样的。 它只是显示名称和一些信息。 如何解析我的html中的1个项目并显示信息而不创建100个单个html文件? 我把所有的信息都当作json。

编辑:用户点击这100个项目中的一个,然后将出现新页面

您可能需要一种模板,您可以自己动手或使用统一的方法。 只需在互联网上搜索“jQuery +模板”,这将让您了解此类任务的多种可能性。 你真的有很多方法可以达到你所需要的,

如果你需要互动,双向绑定和一个伟大的SO支持者社区,恕我直言淘汰(或类似)是一个很好的选择,正如在前一个答案中已经指出的那样。

如果您只需要以简单直接的方式显示数据, nano是您可以找到的最小的模板引擎,因此,这是一个简单的JQM存根,有两个页面使用这种方法:

var all = [], current = {}; var listTemplate = [ '
  • ', '', '

    {name}

    ', '

    {address.city}

    ', '

    {email}

    ', '

    id: {id}

    ', '
    ', '
  • ' ].join(""); var cardTemplate = [ '

    {name}

    ', '
    ', '

    {email}

    ', '

    {website}

    ', '

    {phone}

    ', '

    {address.street}

    ', '

    {address.city}

    ', '
    ' ].join(""); function nano(template, data) { return template.replace(/\{([\w\.]*)\}/g, function(str, key) { var keys = key.split("."), v = data[keys.shift()]; for (i = 0, l = keys.length; i < l; i++) { v = v[keys[i]]; } return (typeof v !== "undefined" && v !== null) ? v : ""; }); } $(document).on("vclick", "#page-list li>a", function() { var id = $(this).data("id"); current = $.grep(all, function(item) { return item.id == id; })[0]; }); $(document).on("pagecreate", "#page-list", function() { var $ul = $(this).find("ul"); $.ajax({ url: "https://jsonplaceholder.typicode.com/users", method: 'GET', crossDomain: true, dataType: "jsonp", complete: function() { $ul.listview().listview("refresh"); }, success: function(result) { all = result; $.each(all, function(i, item) { $ul.append(nano(listTemplate, item)) }); } }); }); $(document).on("pagebeforeshow", "#page-card", function() { $(this).find("[data-role=content]").empty().append(nano(cardTemplate, current)).trigger("updatelayout"); });
               

    Users

    Details

    Back

    您应该考虑使用像KnockoutJS这样的简单绑定库将其构建为SPA。 这将允许您使用单个页面更新数据。

    使用Knockout的SPA教程(单击下拉列表并选择“单页应用程序”):

    http://learn.knockoutjs.com/#/?tutorial=webmail

    在这里下载库: http : //knockoutjs.com/

    当然你可以使用像Angular这样的健壮框架,但这对于设置一些简单的AJAX数据绑定来说真的不是必需的。