Plugins

Alex Bainter edited this page Nov 24, 2017 · 90 revisions

Here is a list of known plugins and enhancements for Knockout. Note that these are unofficial. Plugin Developers, please feel free to add your contributions!

  • Entity Spaces
    A complete ORM solution which uses ko.observables as properties and supports hierarchical data models

  • hookpunch.js
    Adds state tracking and basic undo/revert functionality. Array filters for returning only changed/new objects.

  • kavie
    Incredibly simple and easy to use validation

  • Knock-Knock validation
    Small validation library.

  • Knockout-binding-selector
    Provides conditional binding-overloading for knockoutJs.

  • Knockout-Bootstrap
    Custom Bindings that utilize Twitter Bootstrap JS plugins

  • knockout-collection
    Observable array which stores items indexed with a unique identifier

  • knockout-contextmenu
    Knockout binding for an easy-to-use contextual menu.

  • knockout-DataGrid
    KnockoutJs DataGrid is a library that can be used just like jQuery DataTables.

  • knockout-date-range-picker
    A simple knockout binding that allows you to select a date range.

  • knockout-decorators
    Decorators for use Knockout JS in TypeScript and ESNext environments (like MobX)

  • knockout-hint
    Knockout binding handler that allows you to display hints on the page.

  • knockout-init
    This is a simple knockout component that will automatically create observables from arbitrary json.

  • knockout-inline-confirm
    A knockout inline-confirmation binding for links/buttons

  • knockout-integer
    A simple knockout extender that coerces values to integers

  • Knockout-jQueryUI
    Knockout bindings for the jQuery UI widgets.

  • Knockout-Kendo
    Provides support for binding with Telerik Kendo widgets

  • knockout-logger-js
    A logger that output to the page and/or the console

  • knockout-Memento
    Attach observable's to undo/redo stacks.

  • knockout-money
    A simple knockout extender that wraps accounting.js

  • knockout-projections
    Adds observable map and filter features to observable arrays, so you can transform collections in arbitrary ways and have the results automatically update whenever the underlying source data changes.

  • Knockout-Reactor
    Adds the ability to watch nested observables and create dependencies with minimal coding. It goes beyond the ko.observableArray function by allowing the tracking of all subscribables nested within the array elements dynamically.

  • knockout-relational
    relational model mapping library. attributes is knockout observable.

  • knockout-responsive
    Knockout binding to conditionally hide/show content depending on the width of the window

  • knockout-save-location-hash
    Save observables to location hash to be able to share links of the state of a model.

  • knockout-secure-binding
    A binding provider that lets one use Knockout with a Content Security Policy.

  • knockout-spa
    A mini (but full-fledged) SPA framework built on top of Knockout, Require, Director, jQuery, Sugar

  • knockout-spin
    Simple knockout binding that wraps spin.js

  • knockout-store
    Facilitates separation of app state from view models via a connect method inspired by react-redux.

  • knockout-transitions
    Simple knockout bindings to apply jquery transitions to elements

  • Knockout jqGridBinding
    A grid binding plugin that provides basic integration with the JqGrid jQuery plugin.

  • Knockout UI
    Knockout UI is a collection of UI components based on Knockout and JQuery UI.

  • KnockoutApp
    A small framework for building apps with KnockoutJS.
    It provides a Model, a Collection to store models and a Sync class to communicate with the server.
    See also the discussion on the forum.

  • Knockout.ACL
    plugin for show/hide buttons, links corresponding to server data

  • Knockout.BindingConventions
    Convention over configuration binding provider for KO.

  • Knockout.Bootstrap
    A template bootstrapper that enables server side templates in a convention over configuration way.

  • Knockout.Combobox
    Combobox binding for KO.

  • Knockout.Concurrency
    A Concurrency resolver plugin for KO.

  • Knockout.DeferredUpdates
    Modifies parts of Knockout’s observable/subscription system to use deferred updates.

  • Knockout.Dictionary
    A comprehensive implementation of an observable dictionary.

  • Knockout.Editables
    Easy way to manage changes of observables and view models with commit/rollback functionality and hasChanges flag.
    See simple example and a bit advanced

  • Knockout.External-Template-Engine
    The Knockout.js External Template Engine extends Knockout.js to allow both native & jQuery templates to be loaded on-demand from an external resource (i.e. - external HTML file).

  • knockout.groupedOptions
    A custom binding which offers <select> tags containing <optgroup> elements.

  • Knockout.LazyLoad
    Lazy load images from your Knockout model while scrolling

  • Knockout.Live
    A Knockout plugin that syncs observable variables between all clients automatically.

  • Knockout.Mapper
    An extensible and fast object mapping plugin for KnockoutJS.

  • Knockout.Mapping
    The mapping plugin gives you a straightforward way to map a JavaScript object into a view model with the appropriate observables.

  • Knockout.Mapping.Merge
    An extension to the mapping plugin which allows merging of data into existing view models, this can be useful when models need updating from json but have validation rules or other extensions applied.

  • Knockout.Model
    Base model for Knockout.js entities, also see discussion. It has now a more advanced fork

  • Knockout.Namespaces
    Multiple KnockoutJS ViewModels (separated by namespaces).
    Compatible with the global namespace as well (standard global 'data-bind' ViewModel).

  • Knockout.Punches
    A collection of enhanced binding syntaxes using Knockout 3+

  • Knockout.Repeat
    Replaces foreach in many instances and is faster and simpler for some tasks.

  • Knockout.SwitchCase
    Provides the classic switch/case construct to Knockout.

  • Knockout.Underscore
    Adds Underscore methods to Knockout Observable Array.

  • Knockout.Validation
    Validation plugin that provides native validation rules and extensible rule system for custom validation.

  • ko-component-page
    Provides a nice way to display examples for knockout components

  • KO-Genius
    Declarative, boilerplate-free view-model definitions and server interactions

  • ko-typed
    ko-typed provides observable extensions for restricting and converting observable values based on type. Supports validation.

  • ko-validate
    Knockout validation with a flexible extender and a custom binding handler.

  • KoExtensions
    Adds additional bindings to Knockout: Map for vizualization on google maps, Piechart for rendering any collection as D3JS based pie chart, Datapicker to bind input element as bootstrap style date-picker.

  • koplus
    Create observables directly in your bindings, no need to specify them twice.

  • kotest
    Test Knockout 3.2 components and custom binding handlers with ease.

  • ko.calendar
    A plugin for creating a date/time picker with minimal code

  • ko.datasource
    Datasource Components for KnockoutJs for paging, sorting and filtering remote sources.

  • ko.extenders.date
    Simple date formatting extender based on moment.js.

  • ko.load
    A plugin for loading views in components

  • ko.routing
    ko.routing is a light, flexible router for knockout.

  • ko.search
    A plugin for friendly search in observable arrays

  • ko.types
    An extender to create converter observables that are bound to their source and that convert values back and forth (ex: format to string and parse from string). Also, an extender for restricting the value type that can be set to an observable.

  • ko.widget
    Building block for your web application. Single Page Application, Composition, Isolation, Panels and Windows all these features are supported by ko.widget. It is small, powerful and easy to learn plugin for KnockoutJS.

  • ko.xformArray
    Transform Array--an observable array that efficiently tracks another observable array with optional filtering, sorting, and/or transformation/mapping applied in any combination. The transformed array could have entirely different objects that merely relate to the source array's objects. It can also exactly track the source array's sort order while simultaneously applying a filter and a mapping, or sort entirely differently.

  • lazy-instance
    Add instance properties through the prototype chain.

  • Observable templates Get templates from observables - including SVG

  • Observable.js
    Knockout like observables in a tiny library.

  • Pagerjs
    The Single Page Application Framework for KnockoutJS.

  • treacherous-knockout
    A plugin with bindings to support and display the treacherous validation system errors within knockout views (Treacherous is a standalone js validation system)