1

コレクション内の結果をループするとき、すぐに get で値をチェックしようとすると、モデル プロパティの設定が固執しないようです。私は何が欠けていますか?

collection.each(function(model){


    var objectId = model.id.toString();

    model.set({'objectId':objectId}, {silent:true});                    

    console.log('model.id = ' + model.id + ' and model.get("objectId")' + model.get('objectId'));

    // model.get('objectId') returns 'undefined' but model.id returns proper id



});

コードで述べたように、model.get('objectId') は「undefined」を返しますが、model.id は適切な ID を返します...

4

2 に答える 2

1

次のコード

var TestCollection = Backbone.Collection.extend({
    model: Backbone.Model
});

var collection = new TestCollection;
collection.reset([{id: 1}, {id: 2}, {id: 3}]);

collection.each(function(model) {
  var objectId = model.id.toString();
  model.set({'objectId': objectId}, {silent: true});                    
  console.log('model.id %s  and model.get("objectId") %s', model.id, model.get('objectId'));
})

出力

model.id 1  and model.get("objectId") 1 
model.id 2  and model.get("objectId") 2 
model.id 3  and model.get("objectId") 3 

したがって、実際の問題はコードの残りの部分に隠されていると思います。標準のバックボーンの動作をオーバーライドしていますか?

于 2012-11-07T19:42:55.017 に答える
0

Parseフレームワークでは、「objectId」の属性を設定できないことがわかりました。

于 2012-11-07T20:45:46.120 に答える