2016-06-08 4 views
1

У меня есть метод, в котором экземпляры нескольких избранных представлений, единственное, что действительно меняется в этих экземплярах, - это атрибуты модели, которые были переданы. Будет ли использование цикла для их создания хорошим примером для примера, поскольку число может увеличиться или что рекомендация ?Как я могу использовать цикл для создания нескольких видов скелетов?

JS

setSelects: function(model) { 

    if(this.sessionSelect) { 
     this.sessionSelect.dispose(); 
    } 
    this.sessionSelect = new SearchInputsView({ 
     options: model.get('sessions'), 
     name: 'sessionId' 
    }); 
    this.$('label[for=sessionId]').append(this.sessionSelect.render().el); 

    if(this.accountSelect) { 
     this.accountSelect.dispose(); 
    } 
    this.accountSelect = new SearchInputsView({ 
     options: model.get('accountRestrs'), 
     name: 'account' 
    }); 
    this.$('label[for=account]').append(this.accountSelect.render().el); 

    if(this.tagFifty) { 
     this.tagFifty.dispose(); 
    } 
    this.tagFifty = new SearchInputsView({ 
     options: model.get('tag50Restrs'), 
     name: 'tag50' 
    }); 
    this.$('label[for=tag50]').append(this.tagFifty.render().el); 
}, 

ответ

2
var Subviews= [ { 
        subview: "tagFifty", 
        el:"label[for=tag50]", 
        model:'tag50Restrs'}, 
       }, 
       { ... } 
       ] 

_.each(Subviews, function(subview) { 
    // switch here + use of params 
}); 

Ниже приведен пример из моего кода:

renderSubview: function(options) { 
     this.clearScreen(); 
     this.subviewName = options.subview; 

     switch(options.subview) { 
      case 'home': 
       var homeView = new HomeView(); 
       homeView.inAnimation(); 
       this.subview = homeView; 
       break; 
      case 'rdv': 
       var rdvView = new RdvView(); 
       rdvView.inAnimation(); 
       this.subview = rdvView; 
       break; 
      case 'destinations': 
       var destinationsView = new DestinationsView(options); 
       destinationsView.inAnimation(); 
       this.subview = destinationsView; 
       break; 
     } 
    }, 
Смежные вопросы