Maintained by Tim Branyen @tbranyen and Mike Pennisi @jugglinmike, with help from awesome contributors!
Provides a logical foundation for assembling layouts and views within Backbone. Designed to be adaptive and configurable for painless integration. Well tested, with full code coverage, in both the browser and Node.js environments.
Depends on Underscore, Backbone, and jQuery. You can swap out the dependencies with a custom configuration.
http://layoutmanager.org/From-0.7-to-0.8
- Massive Node.js refactor, including: unit testing, significantly better browser parity, and allowing more seamless browser/server View sharing.
- Ability to disable
Backbone.View#el
wrapper element usingel: false
and opt for the first child inside the template instead. Very experimental! - Added Backbone event bubbling from nested Views to parent.
- The
getView
function can receive a_.where
object now, to easily filter through the Views. - Updated
getView
to have anundefined
first argument to be passed allowing for an optional selector. - Changed Grunt configuration from JavaScript to CoffeeScript.
- Added a
removeView
function to matchsetView
,getView
, etc. - Removed
LayoutManager
andLayoutView
aliases. - Removed
data
alias in favor ofserialize
. - Removed
append
alias in favor ofinsert
. - Renamed
_options
togetAllOptions
making it an endorsed method to use. - Upgraded minimum support to Backbone 0.9.9, which will invoke
stopListening
automatically for you. - Internally using
Backbone.Events#once
to solveafterRender
woes. - Class method
cache
now allows you to override contents. - Class method
setupViews
now allows you to manage many Views by passing an array of Views. - Can now directly set a template function to the
template
property and not have to override fetch with an_.identity
function. - Miscellaneous code cleanup and minor bug/refactor fixes.
Please read and follow the contribution guide before contributing.
Running the unit tests in the browser
Open test/index.html
in your favorite browser to ensure LayoutManager works
as expected.
Running the unit tests headless
Install Node.js, Grunt.js 0.4, and
run npm install
inside the project directory.
Make sure you've installed grunt-cli
globally with:
[sudo] npm install grunt-cli -g
Run grunt
inside a terminal in the project directory to run the tests in both
a headless browser and Node.js environment.
I do my very best to ensure top quality and continued progress with LayoutManager. Developers using, but not contributing, may want to consider leaving a small donation to show their appreciation.
All funds collected will find their way to the mspca organization. Thanks! :)