骨干模型按ID获取JSON元素

时间:2012-07-17 13:28:38

标签: javascript json backbone.js

我第一次使用主干,我真的很难让它与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的元素。

由于

3 个答案:

答案 0 :(得分:1)

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

Using Jquery to get JSON objects from local file

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我首先要修复你的url功能:

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

现在的方式,无论模型的id如何,每次获取请求都会转到/json/test.json/test.id