ractive-model
A Ractive adaptor for ractive data objects. This makes it possible to use template-less Ractive objects as models.
Ractive-Model is forked from [@rstacruz]'s ractive-ractive module and takes a wrapper-based approach to nesting Ractive models rather than applying the child data properties directly on the parent.
Find more Ractive.js plugins at docs.ractivejs.org/latest/plugins
Example
Ractivedefaultsadapt; parent = ;user = ; parent;
Changes in children are propagated to the parent:
user;parent //=> "Jake"
Changes in the parent are propagated to the children:
parent;user //=> "Matt"
Features
Everything you'd expect to work will work.
- bi-directional propagation
- observers
- templates
- computed properties
However, these things are not supported, but may be in the future:
- circular dependencies (an error will be thrown)
- events (see ractive#1249)
Wrap events
It will trigger a few events:
wrap
- called when the instance is set as an attribute of another instanceunwrap
- called when the instance has been unset from its parentwrapchild
- called when the instance gets an Ractive attribute setunwrapchild
- called when the instance gets an Ractive attribute unset
To illustrate:
parent = ;child = ; parent;// triggers `wrap(parent, 'x')` on child// triggers `wrapchild(child, 'x')` on parent parent;// triggers `unwrap(parent, 'x')` on child// triggers `unwrapchild(child, 'x')` on parent
Usage
ractive-model is available via npm.
$ npm install --save ractive-model
Require the module to use. No need to consume the return value.
Credits
Hat tip to the original Ractive adaptor from @Rich-Harris.
(src)
Kudos for the original ractive-ractive
from [@rstacruz].
(src)
Thanks
ractive-model © 2015+, Elliot Chong. Released under the MIT License.
ractive-ractive © 2014+, Rico Sta. Cruz. Released under the MIT License.
Authored and maintained by Elliot Chong with help from contributors (list).
GitHub @ElliotChong · Twitter @ElliotChong