1

私はバックボーンモデルを持っています:

var User = Backbone.Model.extend({
  idAttribute: '_id',

  url: '/api/user',

  defaults:
    { username: ''
    },

  initialize: function () {
    console.log(this, this.isNew());
  }
});

次に、モデルを初期化し、インスタンスをフェッチします。

var user = new User();

user.fetch();

これは機能します。調べるuserと、idプロパティがあります。サーバー上に存在します。ただし、プロパティ セット (プロパティと属性)user.isNew()があるにもかかわらず、何らかの理由で true を報告しています。idサーバー上でこのモデルを更新する必要がありますが、Backbone はPOST必要なときにリクエストを送信することを要求しますPUT...</p>

4

1 に答える 1

1

初期化は、フェッチが完了する前に実行されます。isNew の値は、サーバーの応答が到着するまで変化します。モデルの変更イベントをリッスンするか、フェッチ呼び出しにコールバックを渡します。

var user = new User();

user.fetch({success : function(){
  console.log( user.isNew() );
}});
于 2012-07-20T21:01:01.000 に答える