berhalak edited this page Oct 5, 2016 · 85 revisions

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

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

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

  • ko.load
    A plugin for loading views in components

    A plugin for friendly search in observable arrays

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

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

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

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

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

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

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

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

  • 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.Bootstrap
    A template bootstrapper that enables server side templates in a convention over configuration way.

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

  • Knockout.Combobox
    Combobox binding for KO.

  • Knockout.Concurrency
    A Concurrency resolver plugin for KO.

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

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

  • 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.Namespaces
    Multiple KnockoutJS ViewModels (separated by namespaces).
    Compatible with the global namespace as well (standard global 'data-bind' ViewModel).

  • 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.

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

  • Knock-Knock validation
    Small validation library.

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

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

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

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

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

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

  • 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.

  • 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.

  • Pagerjs
    The Single Page Application Framework for KnockoutJS.

  • Observable templates Get templates from observables - including SVG

  • 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.

    Simple date formatting extender based on moment.js.

  • 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-typed
    ko-typed provides observable extensions for restricting and converting observable values based on type. Supports validation.

  • 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 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.

  • 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.

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

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

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

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

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

  • kavie
    Incredibly simple and easy to use validation

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

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

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

  • 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)

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