【问题标题】:Creating a CRUD for a JSON object?为 JSON 对象创建 CRUD?
【发布时间】:2013-11-25 21:50:54
【问题描述】:

我是 javascript 开发的新手,我遇到了一个我认为已经解决但我不知道如何找到答案的问题。

假设我有一个 JSON 对象如下:

// bagelList.json
{
    "description": "The bagel list. Who brings the bagels on what day.",
    "list": [
        {
            "date": "Nov 25",
            "name": "Cory"
        },
        {
            "date": "Nov 26",
            "name": "Jordan"
        }
    ]
}

我想在网页上显示此对象中的信息,但我想漂亮地显示它 - 而不是直接打印 JSON。我还希望允许用户更新列表、添加新条目、修改描述等。

我可以这样显示数据:

$( document ).ready(function() {

    $.getJSON('bagelList.json', function(bagelData) {

        var items = [];
        $.each( bagelData.list, function( index, bagelAssignment ) {
            items.push( "<tr><td contenteditable="true">"
                        + bagelAssignment.date + "</td><td>"
                        + bagelAssignment.name + "</td></tr>" );
        });

        $("tbody#schedule").append( items.join( "" ) );

    });

});

但是,由于嵌入在 html 中,所有数据现在都被混淆了一点。我可以编写一个解析器来遍历所有表条目并在用户更新项目后重新创建原始 JSON 对象,但这似乎是一个杂项。

什么是建模数据的正确方法,使其可以以吸引人的方式显示,但保留从对象读取和写入的能力?

我认为这个问题之前已经解决了很多次,所以我不想在编写 CRUD 的道路上走得太远,却发现我只需要做 XYZ 就可以了。

【问题讨论】:

  • 您所描述的功能由诸如 Backbone.js 之类的框架提供,这些框架旨在促进视图(您与用户的界面)到模型(您的 JSON 对象)的两种方式绑定.

标签: javascript jquery json serialization


【解决方案1】:

有 jtable 之类的项目 (http://www.jtable.org/Demo/Filtering , https://github.com/hikalkan/jtable)

但我对此的看法 - 我认为在少数情况下您需要一个具有纯 CRUD 操作的表;通常它会更流畅,更具体到您的问题/领域。 我会去Angular。有人还提到了backbone.js,但我认为在角度上它会是无缝的。

如果你走的是角度路径,我推荐egghead,那里有很棒的视频。

【讨论】:

  • 我有点同意这里。如果您正在寻找一个通过魔法“正常工作”的框架,而不是必须连接处理程序来强制改变 DOM 以响应模型的变化,那么 Angular 可能是比 Backbone 更好的选择。
猜你喜欢
  • 1970-01-01
  • 2012-05-09
  • 1970-01-01
  • 1970-01-01
  • 2018-10-08
  • 2015-07-22
  • 1970-01-01
  • 1970-01-01
  • 2018-07-03
相关资源
最近更新 更多