Sha256: 0f8b31bc3deba56cfc8ca6469648ea54ed9b89d280e7bf23e051d18537686ef4

Contents?: true

Size: 1.16 KB

Versions: 2

Compression:

Stored size: 1.16 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");
        
        // jQuery select the HTML input element for next code chunk 
        model.bind("change:" + name, function() {
          return el.val(model.get(name));
        });
        
        // re-set model's specific 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

2 entries across 2 versions & 1 rubygems

Version Path
railsy_backbone-0.0.5 vendor/assets/javascripts/railsy_backbone.datalink.js
railsy_backbone-0.0.4 vendor/assets/javascripts/railsy_backbone.datalink.js