【问题标题】:BackBone model ToJSON renders a field to zeroBackBone 模型 ToJSON 将字段呈现为零
【发布时间】:2012-03-11 13:59:04
【问题描述】:

我的模型中有一些奇怪的行为。当我用这段代码调试时,出现了一些奇怪的东西:

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" 

有人知道为什么我的 duration 字段减少为 0 吗?以及防止 toJSON()duration 更改为 0 的方法?

【问题讨论】:

  • 你的主干和下划线库是最新的吗?

标签: javascript json model backbone.js


【解决方案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);
};

【讨论】:

  • 我发现了这个错误。某处另一段代码正在重写模型:doh:
猜你喜欢
  • 2012-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-09
  • 2022-01-12
相关资源
最近更新 更多