【问题标题】:Backbone js help me get at my JSON arrayBackbone js 帮助我获取我的 JSON 数组
【发布时间】:2013-10-03 23:44:56
【问题描述】:

我目前正在阅读一个主干.js 教程,而不是使用建议的 REST 服务,而是使用我公司的一个作为真实示例。问题是本教程使用来自 REST 服务器的非常简单的 JSON 返回,如下所示:

{
    "name":"Brian"
    "age":52
},
    "name":"Mary"
    "age":"27"
}
... etc.

我自己的数据包含这种类型的数组:

{
    "records":20,
    "customers": [{name:"Simon", age:27},{name:"Mary", age:28}... etc.]
}

在这种情况下,我想接触“客户”。我相信我可以在模型中使用 parse: ,但本教程仅使用 Collection 并将其呈现给模板。我可以只用一个集合来做到这一点吗?或者我应该制作一个模型并使用 parse:?

【问题讨论】:

    标签: javascript backbone.js collections


    【解决方案1】:

    您可以使用集合——只需覆盖Collection.parse。这是 Backbone 调用以将原始 AJAX 响应转换为模型属性的函数。在您的情况下,您只需要它返回 response.customers 而不是原始响应:

    var MyCollection = Backbone.Collection.extend({
        parse: function(response) {
            return response.customers;
        }
    });
    

    【讨论】:

    • 不幸的是,这样做后我无法察觉任何差异。我实现了覆盖并且没有错误,但是模板端仍然在我的结果表上输出一个空白行。记录成功处理程序表明我有一个长度为:1 且模型为:Array[1] 的对象。如果我在控制台级别向下钻取,我最终会看到数据,但模板代码 返回空白。它似乎确实打印了一行,只是无法获取数据
    • 重读这篇文章并不是要暗示您的解决方案是错误的,实际上只是知道您可以在控制器中使用该解析功能就很棒。这是有道理的,看起来它应该起作用。另外,我的模板有
    • 这最终奏效了。错误(惊喜!)归结于我狡猾的编码!非常感谢您提供的信息
    猜你喜欢
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-14
    • 2015-04-29
    • 1970-01-01
    相关资源
    最近更新 更多