Marionette.js рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдкрд░рд┐рдЪрдп

рдЫрд╡рд┐



рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдЖрдк рдирдП Marionette.js рдлреАрдЪрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдВрдЧреЗ - рд╡реНрдпрд╡рд╣рд╛рд░ ред



рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрддреНрд╡реЛрдВ рдореЗрдВ рдмрд╣реБрдд рдмрд╛рд░ рд╣рдо рд╕рдорд╛рди рдирд┐рдпрдВрддреНрд░рдг рдкрд╛рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рд╣рдЯрд╛рдПрдВ" рдмрдЯрди рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ, рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдФрд░ рдкрдВрдЬреАрдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ... рд╣рд╛рдБ рд╣рд░ рдЬрдЧрд╣), рдФрд░ рд╣рд░ рдмрд╛рд░ рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рджреГрд╢реНрдп рдореЗрдВ рдЗрд╕ рдмрдЯрди рдХреЗ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рд╣рд░ рдЬрдЧрд╣ рд╡рд╣реАред

рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЛрдб рджреЛрд╣рд░рд╛рд╡ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдорд╛рдЬреЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, Marionette.js рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╣рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рдЕрджреНрднреБрдд рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХреАред



рд╡реНрдпрд╡рд╣рд╛рд░ DOM рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдХреЛрдб рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд╛рд░реНрдХрд┐рдХ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдХрд┐рд╕реА рднреА рд╕рдордп рдХрд┐рд╕реА рднреА рджреГрд╢реНрдп рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рд╕рдмрд╕реЗ рддреБрдЪреНрдЫ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ - рд╣рдЯрд╛рдПрдВ рдмрдЯрдиред



рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрд╣рд╛рдБ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?



рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрд░рд┐рдпрдиреЗрдЯ рдХреЛ рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╡реЗ рдХрд╣рд╛рдБ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

var Behaviors={}; Backbone.Marionette.Behaviors.behaviorsLookup = function() { return Behaviors; }
      
      





рдЖрдк рд╕рдВрдЧреНрд░рд╣рдг рд╕реНрдерд╛рди рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреВрд░реА рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╣рдорд╛рд░реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдлрд╝реАрдЪрд░ рд╡рд┐рд╡рд░рдг



рдПрдХ рдирдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдкреИрдЯрд░реНрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Backbone.Marionette.Behavior рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

 Behaviors.CloseButton=Backbone.Marionette.Behavior.extend({...})
      
      





рдЗрд╕ рд╡рд╕реНрддреБ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рд╣рдо рдХрд┐рд╕реА рдореЙрдбрд▓ рдпрд╛ рд╕рдВрдЧреНрд░рд╣ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрд╕ рджреГрд╢реНрдп рд╕реЗ рдЬреЛрдбрд╝рдХрд░ рд╕реБрди рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рдпрд╣ рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓рд╛рдЧреВ рд╣реИред

  Marionette.Behavior.extend({ modelEvents: { "change:doge": "onDogeChange" }, onDogeChange: function() { // buy more doge... }, collectionEvents: { add: "onCollectionAdd" }, onCollectionAdd: function() { } });
      
      





рдЖрдк рд╡реНрдпреВ рд╕реЗ рдмрд┐рд╣реЗрд╡рд┐рдпрд░ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рд╣рдо рдХреБрдЫ рднреА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рддрддреНрд╡ рдХреА рд╢реНрд░реЗрдгреА, рдЬрдм рдЖрдк рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЖрдк рдЙрд╕ рддрд░рд╣ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рднреА рд╕реБрди рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рд╣рдо рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣рд╛рдВ рдлрд╝рдВрдХреНрд╢рди рд╕рдВрджрд░реНрдн рд╡рд╣ рджреГрд╢реНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬрд┐рд╕ рдкрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрд╡рдпрдВ рдЯреЗрдореНрдкрд▓реЗрдЯред рджреГрд╢реНрдп рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ред $ рдФрд░ рдпрд╣ред $ El рднреА рдЙрдкрд▓рдмреНрдз рд╣реИрдВред



 Backbone.Marionette.Behavior.extend({ onRender:function(){ //    "render". this.view;//    this.$; //  this.view.$ this.$el; //  this.view.$el this.options; //   ,   . } })
      
      





рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рдХрд▓реНрдк рдХреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдРрд╕рд╛ рдХрд░реЗрдВ

 Marionette.Behavior.extend({ defaults: { 'dominion': 'invasion', 'doge': 'amaze' } });
      
      





рдпрд╣ рдореЙрдбрд▓ рдореЗрдВ рдЪреВрдХ рдХреЗ рд╕рдорд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред



рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрдирд╛рдПрдБ



рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдбрд┐рд▓реАрдЯ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдирдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЙрд╕ рд╡рд╕реНрддреБ рдХрд╛ рдЧреБрдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдХрдардкреБрддрд▓реА рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИред



 Behaviors.CloseButton=Backbone.Marionette.Behavior.extend({ defaults:{ 'el':'.remove-this' }, onRender:function(){ this.$el.find(this.options.el).on('click',this.close.bind(this)); }, close: function() { this.view.model.collection.remove(this.view.model); } });
      
      





рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдмрд┐рд╣реЗрд╡рд┐рдпрд░ рдмрдирд╛рдпрд╛, рдЗрд╕реЗ рдХреНрд▓реЛрдЬрдмреЙрдЯрди рдХрд╣рд╛ред рд╡рд╣ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ? рд╡рд╣ рд░реЗрдВрдбрд░ рдШрдЯрдирд╛ рдХреЛ рд╕реБрдирддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рд╣реИрдВрдбрд▓рд░ рдХреЛ рддрддреНрд╡ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЯрдХрд╛ рджреЗрддрд╛ рд╣реИред рдФрд░ рдХрд┐рд╕ рддрддреНрд╡ рдХреЛ? рд╡рд╣ рдЗрд╕реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рд▓реЗрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд╡рд░реНрдЧ .remove- рдХреЗ рд╕рд╛рде рдПрдХ рддрддреНрд╡ рд╣реИ, рдЕрд░реНрдерд╛рддреН , рдРрд╕рд╛ рдмрдЯрди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛

 <button class="remove-this"></button>
      
      





рдЯреЗрдореНрдкреНрд▓реЗрдЯ рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЗрд╕реЗ рд╡реНрдпреВ рдкрд░ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



 var ListItem=Backbone.Marionette.ItemView.extend({ behaviors: { CloseButton: { //   options. //     ,  Marionette    el  '.remove-this' } } }) var Product=Backbone.Marionette.ItemView.extend({ behaviors: { CloseButton: { el:'.delete-product' } } })
      
      





рдЙрддреНрдкрд╛рдж рджреГрд╢реНрдп рдореЗрдВ, рд╣рдордиреЗ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬреЛ рдХреНрд▓рд┐рдХ рдХреЗ рд▓рд┐рдП рддрддреНрд╡ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░реЗрдЧрд╛ред



рдЗрд╕рд▓рд┐рдП рдмрд┐рд╣реЗрд╡рд┐рдпрд░ рдХреЗ рд╕рд╛рде рд╣рдордиреЗ рдХреЛрдб рдХреЗ рджреЛрд╣рд░рд╛рд╡ рд╕реЗ рдмрдЪрд╛ рдФрд░ рджреБрдирд┐рдпрд╛ рдХреЛ рдПрдХ рдмреЗрд╣рддрд░ рдЬрдЧрд╣ рдмрдирд╛ рджрд┐рдпрд╛ред



рдкреБрдирд╢реНрдЪ рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рддреЛ рдореИрдВ рдбреНрд░реИрдЧ рдПрдВрдб рдбреНрд░реЙрдк (jQuery рд╕реЙрд░реНрдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХрд▓реЗрдХреНрд╢рди рд╡реНрдпреВ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВред



All Articles