Sha256: 0075fce0e32f71a07a954e1b0aa3e8d60066ed29a37cf7a3621f2aadf622fe84

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

// __NOTE:__ only overriding Backbone when `railsy_backbone (start) ... (end)` 
// is explicitly called out.
// 
// TODO
// Enable a configuration value to turn this feature on/off

(function($) {
  
  // `$.extend` enables us to chain functions onto jQuery selected DOM elements.
  // For example, 
  // 
  //     this.$("form").backboneLink(@model)
  // 
  return $.extend($.fn, {
    
    // name function `backboneLine`
    backboneLink: function(model) {
      
      // only target HTML input elements
      return $(this).find(":input").each(function() {
        var el, name;
        el = $(this);
        
        // select the HTML input `name` attribute
        name = el.attr("name");
        
        // TODO describe what this does
        model.bind("change:" + name, function() {
          return el.val(model.get(name));
        });
        
        // re-set model specifical attribute when changed
        return $(this).bind("change", function() {
          var attrs;
          el = $(this);
          attrs = {};
          attrs[el.attr("name")] = el.val();
          return model.set(attrs);
        });
      });
    }
  });
})(jQuery);

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
railsy_backbone-0.0.3 vendor/assets/javascripts/railsy_backbone.datalink.js