現在、私はMarionetteとBackboneを使っています。私はエンティティ:CompositeView
とItemViews
のリストを持っています、すべてのItemViewはfirstname
とlastname
のようなデータを持つモデルを持っています。Marionette ItemViewは2つのリソースからのデータを持っています
それぞれItemView
は、AJAX(別のエンドポイント!)経由でItemViewの新しいデータを取得するリンクで、[{"id": 1, "foo": "this is soo bar"}, {"id": 2, "foo": "a little bit of baz"}]
のような追加データのリストでビューを更新する必要があります。そのデータをビューにレンダリングする必要があります(クリックすると再び削除できます)。
ここに行く最良の方法は何ですか? ItemView
内に2番目のモデルを追加するか、既存のビューに新しいデータを追加しますか?それとも全く違う何か?私はすべての役に立つヒントをありがとう!ここで
マイソリューション(一種の)
は私がなってしまったものです:追加データのためのリンクがクリックされたときに、関連するItemView
は私が定義されBackbone.Collection
オブジェクトをinstanciates。そのコレクションには、エンドポイントのURLが格納されます。その後、私は(約)collection.fetch()
メソッドを呼び出すと、次のようにアンダースコアでそのコレクションをレンダリング:
var tpl = _.template(dataTemplate);
var html = tpl({ myData: {collection.models});
node.html(html);
は私と一緒に考えるために皆さんありがとうございました:)解決するための様々な方法の
*「すべてのItemViewにはfirstnameとlastnameのようなデータを持つモデルがあります」* - このデータはどこから来たのですか?エンドポイントなど何か? –
正確に。アプリケーションはボタンクリックで開始され、AJAXエンドポイントを呼び出し、次にこの(JSON)データをレンダリングします。編集:しかし、そのエンドポイントは別のものです – Hando
基本的に1つのitemviewの複数のモデルを持つことはできません –