0

我第一次使用主干,我真的很难让它与 JSON 数据文件一起正常工作。

我有一个模型像这样:

window.Test = Backbone.Model.extend({

defaults: {  
    id: null,
    name: null,
},

url: function() {
    return 'json/test.json/this.id';
  },

initialize: function(){  

}
});

单击测试项目后,我尝试调出单击的太平洋模型的详细信息

testDetails: function (id) {


    var test = new Test();
    test.id = id;
    test.fetch({ success: function(data) { alert(JSON.stringify(data))}});
},

但是这不起作用,我无法正确地说“使用传递的 ID 获取 JSON 元素”

谁能告诉我如何正确构建模型 URL 以使用 ID 提取元素。

谢谢

4

3 回答 3

1

这里的问题是您将 JSON 数据文件视为对服务器的调用。那是行不通的,这就是你得到 404 的原因。如果你在本地访问文件,你必须先加载文件。您可以使用 .getJSON() 方法使用 jQuery 执行此操作,或者如果文件是静态的,则只需使用脚本块将其加载到内存中(尽管您可能需要在文件中分配一个 var)。最有可能的是,您将使用 jQuery。这方面的一个例子可以在这里找到:

使用 Jquery 从本地文件中获取 JSON 对象

如果这是一个 JSON 数组,您可以将数组加载到集合中,并使用“at”方法通过 id 访问特定元素。如果它完全是 JSON,则必须创建自定义解析器。

于 2012-07-17T17:23:17.850 回答
0

您的网址不正确。您正在返回文字字符串“this.id”。你可能想做更多的事情

url: function () {
    return 'json/test.json/' + this.id;
}
于 2012-07-17T13:38:44.653 回答
0

我将从修复您的url功能开始:

url: function() {
    return 'json/test.json/' + this.get('id');
}

你现在拥有它的方式,每个 fetch 请求,无论模型是什么id,都将/json/test.json/test.id

于 2012-07-17T13:39:50.563 回答