Uniform is a view model for CoffeeScript
npm install uniformI present to you a ViewController for the browser. A
ViewController (in this case) is a class that describes the
behaviour of an element and it's children. It goes well with
jQuery but can use whatever you like.
Here's an example:
`` coffeescriptLet's describe a contact form
class ContactForm extends Uniform
# The HTML template
template: """
"""
# On initialise we want to add the form to the body
init: -> $('body').append(@el)
# We cache some children to properties on this object
elements:
msg: 'textarea'
btn: 'button'
# We delegate the submit event to @sendResponse()
events:
'': # This empty string means attach to thyself
'submit': 'sendResponse'
# Do the sending :)
sendResponse: (el, e) ->
e.preventDefault()
@btn.text('Sending...')
$.post 'index.html', msg: @msg, =>
@msg.val('')
@btn.text('Send')
You can also use your ViewControllers on elements already in
the DOM like so:
` coffeescript
Or use on an existing element
jQuery -> new ContactForm(el: $('#contact'))
``Uniform is best used in compiled CoffeeScript browser
environments. Since Uniform is a CoffeeScript class it is
easiest to extend and use it if your front end code is also
CoffeeScript.
Use it how you like though.
- Can build it's own element using a template
- Can hook onto existing elements in the DOM instead of using
a previously defined template
- Can delegate events of child elements and directly attach
events to itself
- Can cache jQuery objects so that you don't have to
- Can be used with AMD or simply included in your HTML
You can simply use the JS found in the dist folder of the
Uniform git repo [https://github.com/DrPheltRight/uniform]()
Clone the repository [https://github.com/DrPheltRight/uniform.git]()
and then run "cake build" to make a fresh copy of Uniform.
MIT
Luke Morton