2012-03-11 32 views
0

我的模型中有一些奇怪的行为。当我用这段代码进行调试时,出现了一些奇怪的现象:BackBone模型ToJSON渲染一个字段为零

console.log(this.model); 
console.log(this.model.toJSON()); 

这两行提供了两个不同的结果。的this.model

attributes: Object 
    distance: "6500" 
    duration: "25:17.1" 
    id: "33" 
    intervalid: "1" 
    pace: "1:56.7" 
    rowdate: "2012-03-08 20:47:36" 
    trainingid: "18" 

然后日志的的toJSON()

Object 
    distance: "6500" 
    duration: "0" 
    id: "33" 
    intervalid: "1" 
    pace: "1:56.7" 
    rowdate: "2012-03-08 20:47:36" 
    trainingid: "18" 

是否有人有线索,为什么我时间场减为0的记录?并阻止toJSON()持续时间到0?

+0

是您的骨干和下划线库是最新的? – biziclop 2012-03-11 15:53:48

回答

1

对我的作品,甚至当我设置duration: String("25:17.1")

http://jsfiddle.net/m4eeU/

Model.toJSON来源:

toJSON: function() { 
    return _.clone(this.attributes); 
}, 

下划线来源:

// Create a (shallow-cloned) duplicate of an object. 
_.clone = function(obj) { 
    if (!_.isObject(obj)) return obj; 
    return _.isArray(obj) ? obj.slice() : _.extend({}, obj); 
}; 
+0

我发现了这个错误。某处另一段代码重写了模型:doh: – 2012-03-11 21:13:38