1

ここでは、ID を使用して新しい Divider を作成し、Divider を取得して、すべての属性と 1 つの属性を表示しています。

var divider = new Divider({id: "A"});
divider.fetch();
console.info(divider.attributes);
console.info(divider.get("title"));

attributes.titleの出力はconsole.info(divider.attributes)、4 つの文字列を持つ配列として表示されます。でも; console.info(divider.get("title"))null を示します。なぜそれがnullとして戻ってくるのか、誰でも考えられますか? 取得できる唯一の属性は「id」です。また、console.info(divider.attributes.title)ヌルも表示します。

ここに私の Divider モデルがあります:

Divider = Backbone.Model.extend({
  defaults: {
    "id": null,
    "title": null,
    "description": null
  }
}

もっと情報を提供できるかどうか教えてください。ありがとう!

4

2 に答える 2

2

Backbone.js フェッチは非同期であるため、フェッチによって設定される属性に依存している場合は、フェッチが完了した後に属性を取得する必要があります。次に例を示します。

var Divider = new Divider({id: "A"});
divider.fetch({success: function() {
  console.info(divider.get("title");
}});

console.info(divider.attributes)ただし、 attributes.title がデータとともにconsole.info(divider.attributes.title)表示され、null として表示された理由はまだわかりません。

参考:Backbone.jsのフェッチ問題(データをすぐに更新できない)

于 2012-09-04T17:42:38.550 に答える
1

非同期の問題を理解してよかったです。私はあなたと同じ問題に遭遇し、データが返されると、コンソールでモデルの属性が更新されることがわかりました。したがって、コンソールを見ている時点で、fetch メソッドが完了し、モデルが更新されています。

于 2012-09-04T18:07:13.913 に答える