将模型中的属性与一些常见属性进行比较

时间:2013-07-16 12:20:35

标签: html backbone.js marionette

我有一些外部来源的属性名称,如

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

当我从服务器执行fetch()时,我会收到集合[模型集合],现在我必须将model中的每个collection与{{1}进行比较并显示/绑定columnDetails中存在的属性。

澄清的

根据我的理解,如果我们尝试绑定模型,它将仅绑定我们在模型中具有相同名称的属性。

请澄清这一点。

最好的问候

1 个答案:

答案 0 :(得分: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
  } 
});

以下是一些相关链接: