0

次のような外部ソースからのいくつかの属性名があります。

var columnDetails = {
        firstname : "firstname",
        lastName : "lastName",
        place : "place",
        taluk : "taluk",
        state : "state",
        country : "country"
    };

サーバーから実行するfetch()と、コレクション[モデルのコレクション]が取得されます。今modelでは、のそれぞれをと比較collectionし、columnDetailsに存在するプロパティを表示/バインドする必要がありcolumnDetailsます。

私の理解 によると、モデルをバインドしようとすると、モデル内で同じ名前を持つプロパティのみがバインドされます。

これも明確にしてください。

よろしくお願いします

4

1 に答える 1

1

columnDetailsコレクション ビューのアイテム ビューに を渡し、テンプレートでそれらを反復処理する必要があります。

var my_template_html = "<% _.each(attributeNames, function(attributeName) { %> <li><%= model[attributeName] %></li> <% }); %>"
MyItemView = Backbone.Marionette.ItemView({
    template:function(serialized_model) {
        return _.template(my_template_html, {
            model : serialized_model,
            attributeNames : options.attributeNames
        });
    }
});

var columnDetails = {
    firstname : "firstname",
    lastName : "lastName",
    place : "place",
    taluk : "taluk",
    state : "state",
    country : "country"
};

MyCollectionView = Backbone.Marionette.CollectionView({
  itemView: MyItemView, 
  itemViewOptions: {
    attributeNames: columnDetails
  } 
});

関連するリンクを次に示します。

于 2013-07-16T13:31:37.553 に答える