flatiron / plates

Light-weight, logic-less, DSL-free, templates for all javascript environments!
MIT License
831 stars 69 forks source link

Handle Boolean attributes (e.g. 'checked', 'selected') #127

Open Solinx opened 9 years ago

Solinx commented 9 years ago

Currently when trying to map the 'checked' state of a checkbox, Platesjs will always check the checkbox, regardless of the 'checked' value being provided. This is because Platesjs requires all mapped elements to be part of the template and the html spec specifies that Boolean attributes such as 'checked' merely have to be present on the element to perform their function.

This simple PR fixes the issue by effectively removing Boolean attributes from the element in question if the mapped value evaluates to false.

For details: http://www.w3.org/TR/html4/intro/sgmltut.html#h-3.3.4.2 https://github.com/kangax/html-minifier/issues/63#issuecomment-37763316

Solinx commented 9 years ago

Incidentally, this fixes https://github.com/flatiron/plates/issues/28