当id是字符串时,Backbone toJson不返回属性

时间:2012-08-17 04:06:22

标签: ruby-on-rails backbone.js

我正在运行一些rails代码来生成json以供骨干使用。当我将id视为字符串并在骨干中使用它时,toJSON()函数不会返回属性。当我在id上调用to_i时,toJSON()正常工作。 (但这打破了我的应用程序,因为“012345”与12345不同。

我的骨干观点:

  serialize: ->
      console.log @model.toJSON()
      info: @model.toJSON().info

不工作的json回复:

{"id":"123456","info":[{"label":"Hire Date","text":"06-NOV-00"},{"label":"User ID","text":"YADDA"},{"label":"Employee Number","text":"123456"}] }

非工作到JSON结果:

data_partition: DataPartition
id: "123456"
__proto__: Object

工作json:

{"id":123456,"info":[{"label":"Hire Date","text":"06-NOV-00"},{"label":"User ID","text":"YADDA"},{"label":"Employee Number","text":123456}] }

工作到JSON():

data_partition: DataPartition
id: 123456
info: Array[3]
__proto__: Object

但是当我砍掉领先的0时,这会打破我的rails应用程序。

1 个答案:

答案 0 :(得分:0)

运行此代码我没有发现任何问题:

var responseJSON_1 = {"id":"123456","info":[{"label":"Hire Date","text":"06-NOV-00"},{"label":"User ID","text":"YADDA"},{"label":"Employee Number","text":"123456"}] };
var responseJSON_2 = {"id":123456,"info":[{"label":"Hire Date","text":"06-NOV-00"},{"label":"User ID","text":"YADDA"},{"label":"Employee Number","text":"123456"}] };

var MyModel = Backbone.Model.extend({});
var myModel_1 = new MyModel( responseJSON_1 );
var myModel_2 = new MyModel( responseJSON_2 );

console.log( myModel_1.toJSON() );
console.log( myModel_2.toJSON() );​

检查working jsFiddle

您确定自己的回复中没有更改的内容超过id格式吗?