diff --git a/backbone-rails.gemspec b/backbone-rails.gemspec index e79cecf..8bf84e0 100644 --- a/backbone-rails.gemspec +++ b/backbone-rails.gemspec @@ -11,7 +11,7 @@ Gem::Specification.new do |s| s.description = "Quickly setup backbone.js for use with rails 3.1. Generators are provided to quickly get started." s.files = Dir["lib/**/*"] + Dir["vendor/**/*"] + ["MIT-LICENSE", "Rakefile", "README.md"] - s.add_dependency('rails', '~> 3.1.0.rc5') + s.add_dependency('rails', '~> 3.0.10.rc1') s.add_dependency('coffee-script', '~> 2.2.0') s.add_dependency('ejs', '~> 1.0.0') diff --git a/vendor/assets/javascripts/backbone_datalink.js b/vendor/assets/javascripts/backbone_datalink.js index 15683c6..b3458d9 100644 --- a/vendor/assets/javascripts/backbone_datalink.js +++ b/vendor/assets/javascripts/backbone_datalink.js @@ -5,17 +5,28 @@ var el, name; el = $(this); name = el.attr("name"); - model.bind("change:" + name, function() { - return el.val(model.get(name)); - }); - return $(this).bind("change", function() { - var attrs; - el = $(this); - attrs = {}; - attrs[el.attr("name")] = el.val(); - return model.set(attrs); - }); + + if(typeof name !== "undefined" && name !== null) { + model.bind("change:" + name, function() { + val = model.get(name) + if ( el.is("input[type='checkbox']") && (val == true || val == false) ) + el.prop('checked', val); + return el.val(val); + }); + + return $(this).bind("change", function() { + var attrs; + el = $(this); + attrs = {}; + if ( el.is("input[type='checkbox']") ) + attrs[el.attr("name")] = el.prop('checked'); + else + attrs[el.attr("name")] = el.val(); + return model.set(attrs); + }); + } + }); } }); -})(jQuery); +})(jQuery); \ No newline at end of file