0

バックボーンによって消費される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"}] }

動作しない toJSON 結果:

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 を切り落とすと、レール アプリが壊れます。

4

1 に答える 1

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() );​

動作中のjsFiddleを確認してください

idフォーマットよりも多くのことを応答で変更していませんか?

于 2012-08-17T09:02:03.410 に答える