2016-12-02 1 views
-1

私は、Backbone.jsアプリケーションで使用するためにREST APIからデータを取得している途中です。この時点では、返されるデータが配列であることを除いて、データを操作する必要はありません。しかし、将来はこのような要求が出るかもしれないので、私はすでにこのタイプのデータのためのバックボーンモデルとコレクションを作成しました。バックボーンアレイデータの構成に関するアドバイス

Arrayデータをバックボーンコレクション内のオブジェクトにマップすることができますが、モデルを既に持っているので私は疑問に思っています。バックボーンモデル内の各要素。

私はBackbone.jsフレームワークの専門家ではないので、このセクションに関する多くのドキュメントとのリンクは非常に高く評価されます。

更新:私は実際にBackboneJSフレームワークによって提供される解析メソッドを探していました。 parse関数でArrayをObjectに変換することで、私はその問題を解決することができました。 parseメソッドを使用すると、たとえば、次のような変換を行うことができます。コピー等 詳しい情報の属性を変更し、属性:http://backbonejs.org/#Collection-parse

+1

Arrayデータをバックボーンコレクション内のオブジェクトに_mapすること、または使用しているデータの形式を指定することができますか、それと同等かどうかは分かりません – mikeapr4

+0

この時点で、自分のデータはAPIから配列:['item1'、 'item2'、 'item3']私はここに見つかりました(http://stackoverflow.com/questions/31556954/how-to-convert-an-array-to-collection-in-backbone )私は配列をオブジェクトにマップする必要があった –

答えて

1

だけのようにquestionあなたは、言及し、これはコレクションまたはモデルのいずれかで、parseを使用して達成することができます。上記の例では

var UserModel = Backbone.Model.extend({ 
 

 
    // String name is mapped to an object with the name property 
 
    parse: function(name) { 
 
    return { 
 
     name: name 
 
    }; 
 
    } 
 
}); 
 

 
var UserCollection = Backbone.Collection.extend({ 
 
    model: UserModel 
 
}); 
 

 
var collection = new UserCollection(['Ann', 'Joe', 'Jim', 'Bob'], {parse: true}); 
 
console.log(collection.at(0).get('name'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script>

、コレクションにデータがインスタンス化され、それはオプションで設定する必要がありますので、この場合には、parseしかし場合は、デフォルトでは実行されません。コレクションは通常、データをfetchから取得します。これは、デフォルトでは常に解析されます。

+0

ありがとう、これは私の質問に対する答えでした。 –

関連する問題