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); 

ここまでは問題ありませんが、コレクション内のモデルの 1 つだけを使用しようとしましたが、何も機能しません。私は試した:

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

「models」プロパティからモデルを取得できます。

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 に答える