Skip to content

weepy/attr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

component-attr

evented attributes with automatic dependencies

API

attr(val)

Create a new attr with value set to val

attr = require('attr')

name = attr('Homer Simpson')

xxx()

Read a value

name() // => 'Homer Simpson'

xxx(val)

Write a value

name('Bart Simpson')

name() // => 'Bart Simpson'
  • Emits "change" event with (value, previousValue).
name.on('change', function(new_name, old_name) {
  console.log('my name changed from', old_name, 'to', new_name)
})

Computed attr

Has the same API, except function is passed in and is run to determine the initial value. (has no setter)

fullName = attr(function() {
  return firstName() + ' ' + surName()
})

fullName() // => 'Homer Simpson'

fullName.dependencies // => [ firstName, surName ]

Dependencies on other simple (non-computed) are automatically calculated unless set explicitly via a second argument as in:

fullName = attr(function() {
  return firstName() + ' ' + surName()
}, [firstName])

fullName.dependencies // => [ firstName ]

attr methods

.toggle()

Flips truthy to false and falsey to true

.incr(val)

Increments value by 1 or val

.change(fn)

Binds fn to the change event

.change()

force a change event

.value

contains the current value. Use to get value without running the getter (most useful for computed attr)

.old

contains the last value

.dependencies

Contains a list of dependencies (this will be null for simple attr)

additional

attr.autocompute

By default function values are assumed to be computed. This behaviour can be turned off by setting autocompute.

attr.computed(fn, dependencies)

Explicitly creates a computed attr - this is only useful if autocompute is turned off

attr.dependencies(fn)

Calculates a list of the simple (non-computed) attributes called by running this function

Testing

make && open test/index.html

License

MIT

About

evented attribute component with automatic dependencies

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published