2016-05-30 10 views
0

オンラインチュートリアルでBackbone.jsのtoJSON()関数を正しく使用する方法を調べようとしています。このチュートリアルでは、Backbone.jsでtoJSON()を使用する

をお忘れの場合は、Backbone Model docsを参照してください。

私はリンクをたどると、左のサイドバーにtoJSONをクリックしたときしかし、それはちょうど約JSON.stringify代わりtoJSON()のを語っています。誰かがtoJSON()機能の正しい使い方を教えてもらえますか?

答えて

1

これは単なる便利な方法です - たとえば、model.toJSON()を使用してモデルにテンプレートを渡すと、テンプレートで使用するモデルオブジェクトのモデル属性が引き出されます。あなたは簡単にmodel.attributesを渡すことができ、それはまた補間することもできます... "toJSON"という名前は、モデルオブジェクトの持つ他のすべてのプロパティではなく、 "JSONとしてのモデルアトリビュートの表現の作成"を意味すると思います。

+0

Date.prototype.toJSON() 'が動作し、BackboneのtoJSONではなく... –

+1

バックボーンの注釈付きソースを確認して、動作上明確に確認してください。http://backbonejs.org/docs/backbone.html #section-61 –

0

toJSONmodel.toJSON([options])

戻り浅いコピーのJSON文字列化のためのモデルの属性の。これは、永続化、シリアライゼーション、またはサーバーに送信される前の拡張に使用できます。

強調鉱山

ここで重要なことは、toJSONは、テンプレートと、上記の他の多くのもののために使用することができるコピーmodel.attributesを返すことです。この方法を使用する利点は、実際のモデルに影響を与えずに変更を加えることができることです。

たとえば、通貨区切り記号などを削除するなど、サーバーと通信する前にデータを変換する必要があるとします。toJSONで取得したデータのコピーを更新し、実際の属性に影響を与えることなくサーバーに送信できます。

これらの状況は、モデルデータがUIに厳密にバインドされているrivetsjsなどのデータバインディングライブラリを使用している場合に主に発生します。実際のモデルアトリビュートで通貨区切り記号を削除するとUIに反映されますが、これはうまくありません。アイデアを得るのに役立つことを願っています。

関連する問題