рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди

рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдРрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рдо рдЖрддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реА рдмрд╛рд░ рд▓рд┐рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИред рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рд╕реВрдЪреА рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдмрди рдЧрдИ, рдФрд░ рдПрдХ рдЖрд╕рд╛рди рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рдмреИрдХрдмреЛрди рдкрд░ рдХрдо рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ ... рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдореИрдВ рдХрд╛рд░реНрдп рдХреЛ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдмреИрдХрдмреЛрди рдХреА рдЕрд▓реНрдк рдХреНрд░рд┐рдпрд╛ рдХреА рд╡рдЬрд╣ рд╕реЗ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реВрдВред

рджреЛ рдордВрдбрд▓рд┐рдпрд╛рдВ рдмрдирд╛рдПрдВ ...


рдереЛрдбрд╝рд╛ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдореЗрд░реЗ рд╕рд┐рд░ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдмреНрд▓реЙрдХ рдЖрд░реЗрдЦ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ:

рдЗрдВрдЯрд░рдлреЗрд╕ рдбрд┐рдЬрд╛рдЗрди рдХрд░рддреЗ рд╕рдордп, рдореИрдВ рд╣рдореЗрд╢рд╛ рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ, рдПрдХ рд╕реВрдЪреА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдФрд░ SelectItemView рджреЗрдЦреЗрдВ рдЬреЛ рдЗрд╕реЗ SelectItemView рд╣реИред рдЕрдЧрд▓рд╛, рддрддреНрд╡ рдПрдХ рд╕реВрдЪреА рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╕реВрдЪрд┐рдпрд╛рдБ BaseView рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП - рдмреЗрд╕ рд╡реНрдпреВ рдХрд╛ рдореВрд▓ рджреГрд╢реНрдпред

рдХрд╛рд░реНрдп рдЕрд╕реАрдо рд░реВрдк рд╕реЗ рдореБрдбрд╝реА рд╣реБрдИ рд╕реВрдЪрд┐рдпрд╛рдБ рдмрдирд╛рдирд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк HTML рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА рдХреА рддрд░рд╣ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 <script type="text/template" id="base-tempate"> <div class="primary"><!-- SelectView --></div> <div class="secondary"><!--  BaseView,   --></div> </script> 

.secondary рдХреЛ .secondary рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ .secondary рджрд┐рдпрд╛ .secondary , рдФрд░ рдЬрдм рд╕рдХреНрд░рд┐рдп .primary рдПрд▓рд┐рдореЗрдВрдЯ рдХреЛ .primary рдЬрд╛рдПрдЧрд╛ .primary рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдПрдХ рдирдИ рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдПрдЧреАред

... рдФрд░ рд╣рдо рдмрд╛рдХреА рдЙрд▓реНрд▓реВ рдХреЛ рдЦрддреНрдо рдХрд░рддреЗ рд╣реИрдВ


рд▓рдЧрднрдЧ рджреЛ рдШрдВрдЯреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдбреЗрдореЛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ред рдХреЛрдб рдХрд╛рдлреА рд╕рд░рд▓ рдФрд░ рд╕реАрдзрд╛ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдХрд┐ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рд╕рдордЭрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рджрд┐рд▓рдЪрд╕реНрдк рдЕрдВрдХ


1. рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рди рддрддреНрд╡реЛрдВ рдХреА рдиреЗрд╕реНрдЯреЗрдб рд╕реВрдЪреА рд╣реИ, ItemModel рдореЙрдбрд▓" рдХреЛ рд▓реЗрдмрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
  initialize: function(){ if(this.get('items').length > 0){ this.set('label', this.get('label') + ' >'); } 

2. рдЪрдпрдирд┐рдд рдЖрдЗрдЯрдо рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЙрд╕ рдореЙрдбрд▓ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЙрд╕ itemViews рдирд┐рд░реВрдкрдг itemViews рдПрдХ рд╡реНрдпреВрд╣ рдмрдирд╛рдирд╛ рдерд╛ рдЬреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
  changeItem: function(){ u.each(this.itemViews, function(view){ if(view.el === this.el.options[this.el.selectedIndex]){ this.collection.selectedModel = view.model; this.collection.trigger('changeSelectedItem'); } }, this); }, 

3. рдЙрдкрд░реНрдпреБрдХреНрдд рдХреЛрдб рдПрдХ рд╕рд┐рдЧреНрдирд▓ changeSelectedItem рднреЗрдЬрддрд╛ рд╣реИред changeSelectedItem , рдЬреЛ BaseView рдкрдХрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рддреЛ рдорд╛рдзреНрдпрдорд┐рдХ рд╕реВрдЪреА рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ:
  renderSecondary: function(){ var collection = this.collection.selectedModel.itemsCollection; var container = this.$el.find('.secondary'); container.empty(); if(collection) (new BaseView({ collection: collection })).render().$el.appendTo(container); } 


рдХреЛрдб рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг


рд╕рднреА рдХреЛрдб рдЗрд╕ рдЖрд╡рд░рдг рдореЗрдВ рд╣реИрдВ:
 (function(j, b, u){ // j - jQuery // b - Backbone // u - Underscope })(jQuery.noConflict(), Backbone.noConflict(), _.noConflict());тАЛ 

рдЖрдорддреМрд░ рдкрд░ рдореИрдВ рдПрдХ рдЖрд╡рд░рдг рдХреЛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рднреА рдХреЛрдб рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИрдВ рдФрд░ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рдЖрдкрдХреЛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдореЗрдВ рдЖрд▓реЛрдЪрдирд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд╣рддрд╛ рд╣реВрдВ, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рдбреЙрд▓рд░ рдФрд░ рдиреАрдЪреЗ рдХреЗ рдбреИрд╢ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдмреИрдХрдмреЛрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреЛрдб рдХреА рд╕рдЯреАрдХрддрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╢рд╛рдпрдж рдпрд╣ рд╕рд┐рд░реНрдл рдореЗрд░реЗ рд▓рд┐рдП рд╣реИ рдпрд╣ рд╕рд╛рдл рдирд┐рдХрд▓рд╛?

Source: https://habr.com/ru/post/In148875/


All Articles