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 

因此,我假设实际问题隐藏在您的其余代码中。您是否覆盖了标准的 Backbone 行为?

于 2012-11-07T19:42:55.017 回答
0

我发现 Parse 框架不允许您设置“objectId”的属性。

于 2012-11-07T20:45:46.120 回答