1

我正在构建一个简单的backbone.js 应用程序,而不使用“真正的数据库”。我的数据库非常简单,看起来像这样:

[
    { "Name": "Daniel", "Month": "abc", "year": "83" },
    { "Name": "Johan", "Month": "abg", "year": "33" }
]

我成功地将数据提取到集合实例中,我做了 console.log 并看到它有效:

this.nameList = new NameList();
this.nameList.fetch();
console.log(this.nameList); 

在这里我很好,现在我尝试只使用集合中的一个模型,但没有任何效果。我试过:

console.log(this.nameList.at(1));
console.log(this.nameList.get(id));  //when id is passed as a number.
console.log(this.nameList.getByCid(id))  //when id is passed as a number.

我总是得到“未定义”。

  • 我如何使用这样的简单数据库?
  • 我在哪里可以读到这些东西?

作为更新,它在处理集合时对我有用:

    this.projectList = new ProjectList;
    this.projectList.fetch({
        success: function (data) {
            console.log(data.get(id));
        }
    });

使用单个模型时不起作用:

    this.project = new Project({id: id});
    this.project.fetch({
        success: function (data) {
            console.log(data);
        }
    });

现在我得到:GET ......../Client/web/Data/projects/3 404(未找到)

为什么?

4

2 回答 2

0

您可以从“模型”属性中检索模型:

console.log(this.nameList.models[0].name);

于 2012-08-20T21:14:41.100 回答
0
/Client/web/Data/projects/3 404 (Not Found)

你确定你真的在那个 RESTian 位置提供一些东西吗?

集合的默认获取行为将是对集合 URL [/Client/web/Data/projects] 执行 GET,您说它正在提供正确的数据。

但是,当您在单个模型上调用 fetch() 时,它会将该模型的 id 附加到集合 URL:/Client/web/Data/projects/3,它返回 404/Not Found 响应。如果您手动尝试该 URL,您是否真的得到响应?

至于为什么console.log(this.nameList.get(id))返回未定义,似乎 nameList 没有正确填充。看看输出console.log(this.nameList.models)- 它真的有你期望的模型吗?

于 2012-08-21T23:57:33.657 回答