モデルがサーバーからフェッチされるときに問題が発生しています。Chrome 開発ツールでサーバーから返された正しい JSON が表示されますが、返された値でモデルが更新されません。
var listtemplate = 新しい ListTemplateModel.Model({id: id}); listtemplate.fetch();
この時点で、Chrome 開発ツールに正しいデータが表示されます。サーバーから返されるものは次のとおりです。
{ "title": "テンプレート 1", "id": "template_one", "ステップ": [ { "説明": "大好きです", "ID": 1, "created_at": "2012-12-24T18:01:48.402Z" }、 { "description": "これはゴミです!", "ID": 1, "created_at": "2012-12-24T18:01:48.402Z" } ]、 "created_at": "2012-12-24T18:01:48.402Z" }
しかし、JSON をログに記録するコンソールには、モデルの作成中に渡されたデフォルト値と ID だけが表示されます。
console.log(listtemplate.toJSON());
これは次を返します。
{id: "template_one"、タイトル: ""、手順: 配列[0]}
私のモデルは次のようになります (私は Require.js を使用しているため、モデルの名前は上記の ListTemplateModel に変更されています)
var Model = B.Model.extend({ デフォルト: { 題名: ''、 ID: 0, 手順: [] }、 urlRoot: 'xxx' });
何か案は?
@Amulyaの回答を編集して正しい軌道に乗せ、「その後」を発見しました。これが誰かが同じ問題に遭遇するのに役立つことを願っています:
listtemplate.fetch().then(関数(){ //ビューを更新 });