Epoxy.js is an elegant and extensible data binding library for Backbone.js; it provides feature-rich extensions of Backbone's Model
and View
components designed to hook view elements directly to data models. Epoxy captures some great aspects of Knockout.js and Ember.js in a familiar API that feels tastefully like Backbone, with minimal additional file size (~10k min, 2k gzip). Some key features in Epoxy include:
- Computed Model & View Attributes
- Declarative View Bindings
- Automated Dependency Mapping
- Automatic View Updates
Epoxy builds on jQuery/Zepto+Backbone and works where they work: IE6+, Firefox 3+, Safari, Chrome.
Epoxy requires jQuery 1.7.0+, Underscore 1.4.3+, and Backbone 0.9.9+. To quickly install Epoxy, download the full Epoxy library (backbone.epoxy.min.js
) and include its script tag in your document after all dependencies:
<script src="jquery-min.js"></script>
<script src="underscore-min.js"></script>
<script src="backbone-min.js"></script>
<script src="backbone.epoxy.min.js"></script>
You may choose to replace jQuery with Zepto and/or Underscore with Lo-Dash. Also remember to include the json2 library when targeting IE6/7.
For all complete information and documentation, visit the project's website at epoxyjs.org.
0.12.8 – June 3, 2013 - Diff
Bug fixes and performance optimizations.
- Bug fix to
Epoxy.View.remove()
implementation (thanks @pixelbreaker). - Adds binding support for HTML
contenteditable="true"
elements (thanks @leovarg67). - Adds bindings parser caching for improved performance (thanks @dspangen).
- Adds compatibility with Zepto.
- Additional error hooks/messaging for improved debugging.
- Small codebase optimizations and bug fixes.
0.12.0 – April 2, 2013 - Diff
Major reorganization of core features to improve workflow patterns.
- Removes
observableDefaults
andaddObservable
APIs. - Renames former "observable" model methods to
hasComputed
,removeComputed
, andclearComputeds
. - Adds
viewModel
property to view as sanctioned store for view-specific data. - Adds
computeds
hash table to view for defining computed view properties. - Adds static
mixin
APIs for applying Epoxy configuration to other base classes. - Adds dependency injection to computed getters defining a
deps
array. - Adds two-way data exchange to binding filters, and adds
integer
,decimal
, andcsv
filters. - Configures class constructors to pull configuration out of passed options.
- Revised documentation.
0.11.0 – March 25, 2013 – Diff
Adds final features planned for 1.0 release.
- Adds
template
binding for rendering data attributes with an Underscore template. - Adds
bindingFilters
namespace for defining custom data filters. - Defines
binding
API for core configuration and add-ons. - Browser compatibility fixes to the
options
binding. - Refactoring for performance (at slight expense to file size).
- Adds environment setup and AMD definition, courtesy of jpurcell001 and Marionette.
- The notion of "operators" is officially reclassified as "filters".
- Revised docs.
0.10.1 – March 21, 2013 – Diff
Large codebase refactoring.
- Shifts bindings from element level down to the handler level.
- Opens default binding handlers, operators, and options to a public API.
0.10.0 – March 19, 2013 – Diff
Adds additional binding features to stage for a 1.0 release.
- Adds select menu
options
binding suite and supporting tests; includes:options
: Binds the contents of an Array or Collection to select menu options.optionsDefault
: Provides a default option to include aboveoptions
items.optionsEmpty
: Provides an empty placeholder option to display whenoptions
is empty.
- Registers
"update"
event on collection sources for manually triggering binding updates. - Adds return values to all model methods.
- Upgrades to Uglify2 for better gzip compression.
- General refactoring and additional code comments.
- Documentation updates and corrections.
0.9.0 – March 12, 2013
Initial release of Epoxy core features.