Index
A
- accessors
- applying / Applying accessors
- activate
- viewmodels, preparing with / Preparing viewmodels with activate
- activation lifecycle
- about / The activation life cycle
- activator
- about / The activation life cycle
- activator, properties
- canActivate / The activation life cycle
- activate / The activation life cycle
- canDeactivate / The activation life cycle
- Deactivate / The activation life cycle
- activators
- using / Using activators
- advanced binding handlers
- about / Advanced binding handlers
- complex data, binding with charts / Binding complex data with charts
- APIs, exposing through bindings / Exposing APIs through bindings
- advanced composition
- about / Advanced composition
- view caching / View caching
- transitions / Transitions
- templated mode / The templated mode
- AMD
- about / Asynchronous Module Definitions
- registering / Registering AMD
- animated binding handlers
- about / Animated binding handlers
- animation handlers / Cluttering the viewmodel
- anytime login
- about / Anytime login
- responding, to user's login changes / Responding to the user's login changes
- APIs
- exposing, through bindings / Exposing APIs through bindings
- APIs, dialog context
- addHost(dialog) / Custom modal dialogs
- removeHost(dialog) / Custom modal dialogs
- compositionComplete(child, parent, context) / Custom modal dialogs
- application events
- about / Application events
- applyBindingAccessorsToNode method
- about / Applying accessors
- applyBindingsToNode method
- about / Applying accessors
- autocomplete binding / Knockout Kendo
B
- basic component registration
- about / The basic component registration
- custom elements, in IE 8 and higher / Custom elements in IE 8 and higher
- binding, to plain JavaScript objects
- about / Binding to plain JavaScript objects
- observable plugin setup / Observable plugin setup
- subscriptions, setting up / Subscribing and extending
- extenders, adding / Subscribing and extending
- computed observables / Computed observables
- promises / Promises
- sample / Sample
- binding contexts
- about / Binding contexts and descendant bindings
- extending / Extending binding contexts
- binding expression parser
- about / The binding expression parser
- Knockout property writers / Knockout property writers
- binding filters
- about / Binding filters
- custom filters, writing / Writing custom filters
- binding handler
- about / Components of a binding handler
- components / Components of a binding handler
- binding handler preprocessing
- about / Binding the handler preprocessing
- uppercase preprocessor / The uppercase preprocessor
- binding handlers
- order, controlling of / Controlling the order of binding handlers
- sorting / Sorting binding handlers
- running / Running the binding handlers
- binding providers
- about / Binding providers
- custom binding providers / Custom binding providers
- binding providers, functions
- nodeHasBindings(node) / Binding providers
- getBindingAccessors(node, bindingContext) / Binding providers
- bindings
- DOM, modifying with / Modifying the DOM with bindings
- applying, to new children elements / Applying new bindings to new children elements
- APIs, exposing through / Exposing APIs through bindings
- wrapping / Wrapping existing bindings
- applying / Applying bindings
- bindings, applying to new children elements
- accessors, applying / Applying accessors
- Bootstrap, Knockout
- about / Knockout Bootstrap
C
- canDeactivate
- navigation, checking with / Checking navigation with canDeactivate
- charts
- complex data, binding with / Binding complex data with charts
- Charts.js
- chart type
- adjusting, dynamically / Dynamically adjusting the chart type
- child binding contexts / Child binding contexts
- child routers
- about / Child routers
- dynamic child routes / Dynamic child routes
- child routes / Child routers
- complex data
- binding, with charts / Binding complex data with charts
- complex data, binding with charts
- chart type, adjusting dynamically / Dynamically adjusting the chart type
- component loader
- implementing / Implementing a component loader
- methods / Implementing a component loader
- component object, properties
- template / Combining components with data bindings
- createViewModel(params, componentInfo) / Combining components with data bindings
- components
- about / Components
- basic component registration / The basic component registration
- template registration / Template registration
- viewmodel registration / The viewmodel registration
- AMD registration / Registering AMD
- changes, observing in component parameters / Observing changes in component parameters
- lifecycle / The component's life cycle
- disposal / The component's disposal
- combining, with data bindings / Combining components with data bindings
- loading, with custom configurations / Loading components with custom configurations
- components, binding handler
- about / Components of a binding handler
- compose binding
- about / The compose binding
- composition lifecycle
- about / Composition
- composition options
- about / Composition options
- module instance / Module instance
- constructor / Constructor
- module ID strings / Module ID strings
- viewpath strings / Viewpath strings
- explicit models / Explicit models and views
- views / Explicit models and views
- containerless composition / Containerless composition
- composition system
- about / The composition system
- root, composing of shell viewmodel / The composition system
- compose binding / The compose binding
- view locations / View locations
- computed observables
- about / Computed observables
- writable computed observables / Writable computed observables
- pure computed observables / Pure computed observables
- configuration, router / Configuring the router
- constructor, composition option / Constructor
- contacts list application
- overview / The Contacts List application, Overview
- contact model / The contact model
- contacts page viewmodel / The Contacts page viewmodel
- mock data service / Mock data service
- view / The view
- containerless control flow
- about / Containerless control flow
- containerless syntax, with custom bindings
- about / Containerless syntax with custom bindings
- virtual elements API, using / Using the virtual elements API
- Content Security Policy (CSP) / The binding expression parser
- control flow bindings
- about / Control flow bindings
- if binding / The if binding
- with binding / The with binding
- foreach binding / The foreach binding
- CRUD (Create, Read, Update, Delete) / The Contacts page viewmodel
- currying
- about / Proxying events
- custom binding handlers
- using / Using custom binding handlers
- custom binding providers
- about / Custom binding providers
- custom component loaders
- custom configurations
- components, loading with / Loading components with custom configurations
- custom dialogs
- about / Custom dialogs
- alternative method / An alternative method
- custom elements
- registering / Registering custom elements
- custom loader
- registering / Registering a custom loader
- custom modal dialogs
- about / Custom modal dialogs
- default context, replacing / Replacing the default context
D
- $data viewmodel / Control flow bindings
- data-bind attribute / The data-bind syntax
- data-bind syntax
- about / The data-bind syntax
- binding, with nested properties / Binding with nested properties
- binding, against functions / Binding against functions
- binding, with expressions / Binding with expressions
- binding, with function expressions / Binding with function expressions
- parentheses, using in bindings / Using parentheses in bindings
- ko.toJSON, used for debugging / Debugging with ko.toJSON
- data-part attributes
- used, for modifying Durandal widgets / Modifying widgets with data-part attributes
- data binding pattern
- about / The data binding pattern
- data bindings
- components, combining with / Combining components with data bindings
- debouncing functions
- default loader
- about / The default loader
- default message / Creating custom rules
- define method
- about / Asynchronous Module Definitions
- module name parameter / Asynchronous Module Definitions
- dependencies parameter / Asynchronous Module Definitions
- module function parameter / Asynchronous Module Definitions
- dependencies
- registering / Registering dependencies
- subscribing to / Subscribing to dependencies
- dependency tracking
- about / Dependency tracking
- ko.dependencyDetection module / ko.dependencyDetection
- descendant bindings
- about / Binding contexts and descendant bindings
- controlling / Controlling descendant bindings
- dirty flag
- disposal handler
- DOM
- modifying, with bindings / Modifying the DOM with bindings
- DOM local storage
- domNodeDisposal object
- methods / The ko.utils reference
- Durandal
- overview / An overview of the Durandal framework, Getting started
- URL, for documentation / An overview of the Durandal framework
- promises / Promises
- dynamic child routes
- about / Dynamic child routes
- dynamic namespaced bindings / Dynamic namespaced bindings
- dynamic templates / Dynamic templates
E
- embedded Ruby syntax interpolation
- adding / Multiple syntaxes
- embedded text bindings / Embedded text bindings
- environment setup
- about / The environment setup
- samples of code, viewing / Looking at the samples
- JavaScript compatibility / JavaScript's compatibility
- events
- subscribing to / Subscribing to events
- unsubscribing from / Unsubscribing from events
- raising / Raising events
- proxying / Proxying events
- events, composition stages
- getView() / Composition
- viewUrl / Composition
- activate() / Composition
- binding(view) / Composition
- bindingComplete(view) / Composition
- attached(view, parent) / Composition
- compositionComplete(view, parent) / Composition
- detached(view, parent) / Composition
- events module
- about / The events module
- explicit models, composition option / Explicit models and views
- extenders
- about / Extenders
- simple extenders / Simple extenders
- with options / Extenders with options
- targets, replacing / Extenders that replace the target
F
- filters
- on other bindings / Filters on other bindings
- foreach binding / The foreach binding
- frame / ko.dependencyDetection
- functions, cache
- ko.components.get(name, callback) / Combining components with data bindings
- ko.components.clearCachedDefinition(name) / Combining components with data bindings
G
- gated login
- about / Gated login
- Git
- about / The environment setup
- URL, for installation instructions / The environment setup
- GitHub
- URL / The environment setup
- guarded routes
- about / Guarded routes
I
- if binding / The if binding
- Immediately-Invoked Function Expression (IIFE)
- Immediately Evaluating Function Expressions (IEFE)
- about / Asynchronous Module Definitions
- instance
- versus singleton / Singleton versus instance
- isNavigating property, router / A note on the router's isNavigating property
J
- JavaScript
- navigation, controlling from / Controlling the navigation from JavaScript
K
- Kendo, Knockout
- about / Knockout Kendo
- Kendo UI
- URL / Knockout Kendo
- keys
- using, for array updates / Using keys for array updates
- Knockout
- overview / An overview of Knockout
- URL, for observables / A philosophical note on a model versus a viewmodel
- URL, for tutorials / Modifying the DOM with bindings, Binding contexts and descendant bindings
- Knockout-ES5
- about / Knockout-ES5
- browser support / Browser support
- knockout-table plugin
- URL / KoGrid
- Knockout.BindingConventions plugin
- URL / Custom binding providers
- Knockout.Punches
- URL / Knockout punches
- Knockout Bootstrap
- about / Knockout Bootstrap
- URL / Knockout Bootstrap
- Knockout documentation
- Knockout Kendo
- about / Knockout Kendo
- URL / Knockout Kendo
- Knockout Mapping
- about / Knockout Mapping
- viewmodel, updating / Updating the viewmodel
- unmapping / Unmapping
- options / Mapping options
- URL / Challenges
- Knockout Mapping, options
- keys, using for array updates / Using keys for array updates
- create, used for object construction / Using create for the object construction
- updates, controlling / Controlling updates
- properties, selecting / Choosing which properties get mapped
- challenges / Challenges
- Knockout Projections
- about / Knockout Projections
- Knockout property writers / Knockout property writers
- Knockout punches
- about / Knockout punches
- embedded text bindings / Embedded text bindings
- namespaced bindings / Namespaced bindings
- binding filters / Binding filters
- additional preprocessors, adding / Adding additional preprocessors
- Knockout Switch-Case
- about / Knockout Switch-Case
- Knockout Validation
- about / Knockout Validation
- default validation rules / Default validation rules
- options, configuring / Configuring validation options
- binding handlers / Validation binding handlers
- custom rules, creating / Creating custom rules
- ko.applyBindings once (per root)
- calling / Calling ko.applyBindings once (per root)
- ko.contextFor (element) parameter / Delegated events
- ko.dataFor (element) parameter / Delegated events
- ko.dependencyDetection module / ko.dependencyDetection
- ko.isObservable function / The ko.isObservable function
- ko.toJS function / Serializing viewmodels
- ko.toJSON function / Serializing viewmodels
- ko.unwrap utility method
- about / Animated binding handlers
- ko.utils namespace
- about / The ko.utils reference
- public functions / The ko.utils reference
- ko.virtualElements object
- methods / Using the virtual elements API
- KoGrid
L
- lifecycle
- about / The application's life cycle
- logins
- handling / Handling logins
- gated login / Gated login
- anytime login / Anytime login
M
- mapping, Knockout
- about / Knockout Mapping
- viewmodel, updating / Updating the viewmodel
- unmapping / Unmapping
- options / Mapping options, Using create for the object construction, Challenges
- message boxes
- about / Message boxes
- settings / Message box settings
- methods, component loader
- getConfig(name, callback) / Implementing a component loader
- loadComponent(name, componentConfig, callback) / Implementing a component loader
- loadTemplate(name, templateConfig, callback) / Implementing a component loader
- loadViewModel(name, viewModelConfig, callback) / Implementing a component loader
- methods, default loader
- ko.components.register(name, configuration) / The default loader
- ko.components.isRegistered(name) / The default loader
- ko.unregister(name) / The default loader
- methods, domNodeDisposal object
- addDisposeCallback(node, callback) / The ko.utils reference
- cleanNode(node) / The ko.utils reference
- cleanExternalData(node) / The ko.utils reference
- removeDisposeCallback(node, callback) / The ko.utils reference
- removeNode(node) / The ko.utils reference
- methods, ko.virtualElements object
- childNodes(containerElement) / Using the virtual elements API
- emptyNode(containerElement) / Using the virtual elements API
- firstChild(containerElement) / Using the virtual elements API
- insertAfter(containerElement, nodeToInsert, insertAfter) / Using the virtual elements API
- nextSibling(node) / Using the virtual elements API
- prepend(containerElement, nodeToPrepend) / Using the virtual elements API
- setDomNodeChildren(containerElement, arrayOfNodes) / Using the virtual elements API
- modal dialogs
- about / Modal dialogs
- message boxes / Message boxes
- custom dialogs / Custom dialogs
- model
- versus viewmodel / A philosophical note on a model versus a viewmodel
- Model-View-ViewModel (MVVM) / An overview of Knockout
- about / The data binding pattern
- viewmodel / The data binding pattern
- module-scoped events
- about / Module-scoped events
- module ID strings, composition option / Module ID strings
- module instance, composition option / Module instance
- MVVM pattern
- about / Sticking to MVVM
- view / The view and the viewmodel
- viewmodel / The view and the viewmodel
- viewmodel, cluttering / Cluttering the viewmodel
- view, cluttering / Cluttering the view
N
- namespaced bindings
- about / Namespaced bindings
- dynamic namespaced bindings / Dynamic namespaced bindings
- navigation
- hash change, versus push state / Navigation – hash change versus push state
- controlling, from JavaScript / Controlling the navigation from JavaScript
- checking, with canDeactivate / Checking navigation with canDeactivate
- nested routes / Child routers
- Node.js
- URL, for downloading / The environment setup
- node preprocessors
- about / Node preprocessors
- virtual template nodes, closing / Closing virtual template nodes
- alternate syntaxes, supporting / Supporting alternate syntaxes
O
- object construction
- create, used for / Using create for the object construction
- observable arrays
- about / Observable arrays
- subscribing to / Subscribing to observable arrays
- observable function / Observables
- observables
- about / Observables
- observable arrays / Observable arrays
- computed observables / Computed observables
- manual subscriptions / Manual subscriptions
- one-way binding
- about / The data-bind syntax
- one way binding
- options object, properties
- callback / ko.dependencyDetection
- computed / ko.dependencyDetection
- isInitial / ko.dependencyDetection
P
- $parent property / Control flow bindings
- $parents[n] array / Control flow bindings
- page components creation
- about / Creating page components
- edit page / The edit page
- list page / The list page
- panTo function / Exposing APIs through bindings
- parameter, showMessage
- buttonClass / Message box settings
- primaryButtonClass / Message box settings
- secondaryButtonClass / Message box settings
- class / Message box settings
- style / Message box settings
- parameters, app.showMessage
- Message (string) / Message boxes
- Title (string, optional) / Message boxes
- Buttons (array, optional) / Message boxes
- Autoclose (boolean, optional) / Message boxes
- Settings (object, optional) / Message boxes
- parameters, ko.bindingHandlers
- Element / Components of a binding handler
- valueAccessor / Components of a binding handler
- allBindings / Components of a binding handler
- Viewmodel / Components of a binding handler
- bindingContext / Components of a binding handler
- performance concerns
- about / Performance concerns
- observable loops / Observable loops
- active bindings, limiting / Limit active bindings
- delegated events / Delegated events
- plain JavaScript objects
- binding to / Binding to plain JavaScript objects
- polyfill
- about / JavaScript's compatibility
- preprocess function, parameters
- value / Creating preprocessors
- name / Creating preprocessors
- addBinding / Creating preprocessors
- preprocessors
- creating / Creating preprocessors
- projections, Knockout
- URL / Knockout Projections
- promises
- properties, Knockout Mapping
- ignore / Choosing which properties get mapped
- copy / Choosing which properties get mapped
- observe / Choosing which properties get mapped
- include / Choosing which properties get mapped
- prototype chain
- about / The prototype chain
- ko.isObservable function / The ko.isObservable function
- public functions, on ko.utils
- addOrRemoveItem(array, item, included) / The ko.utils reference
- arrayFilter(array, predicate) / The ko.utils reference
- arrayFirst(array, predicate, predicateOwner) / The ko.utils reference
- arrayForEach(array, action) / The ko.utils reference
- arrayGetDistinctValues(array) / The ko.utils reference
- arrayIndexOf(array, item) / The ko.utils reference
- arrayMap(array, mapping) / The ko.utils reference
- arrayPushAll(array, valuesToPush) / The ko.utils reference
- arrayRemoveItem(array, itemToRemove / The ko.utils reference
- domData / The ko.utils reference
- domNodeDisposal / The ko.utils reference
- Extend(target, source) / The ko.utils reference
- fieldsIncludedWithJsonPost / The ko.utils reference
- getFormFields(form, fieldName) / The ko.utils reference
- objectForEach(obj, action) / The ko.utils reference
- parseHtmlFragment(html) / The ko.utils reference
- parseJson(jsonString) / The ko.utils reference
- peekObservable(value) / The ko.utils reference
- postJson(urlOrForm, data, options) / The ko.utils reference
- Range(min, max) / The ko.utils reference
- registerEventHandler(element, eventType, handler / The ko.utils reference
- setHtml(node, html) / The ko.utils reference
- stringifyJson(data, replacer, space) / The ko.utils reference
- toggleDomNodeCssClass(node, classNames, shouldHaveClass) / The ko.utils reference
- triggerEvent(element, eventType) / The ko.utils reference
- unwrapObservable(value) / The ko.utils reference
- publish-subscribe (pub/sub) pattern
- about / Publishing and subscribing
- publish/subscribe implementation
- publishing
- about / Publishing and subscribing
- pure computed observables / Pure computed observables
R
- $root context
- setting / Setting a new $root context
- $root viewmodel / Control flow bindings
- recursive templates / Recursive templates
- RequireJS
- URL / RequireJS – AMD viewmodels, An overview of RequireJS
- about / RequireJS – AMD viewmodels
- overview / An overview of RequireJS
- starting / Starting RequireJS
- configuring / Configuration
- URL, for configuration / Configuration
- app, starting / Starting the app
- text plugin / The text plugin
- Respond.js
- about / JavaScript's compatibility
- reusable templates / Reusable templates
- revealing module pattern
- URL / ko.dependencyDetection
- root
- composing, of shell viewmodel / The composition system
- router
- using / Using the router
- configuring / Configuring the router
- binding / Binding the router
- isNavigating property / A note on the router's isNavigating property
- router, properties
- route / Route properties
- moduleId / Route properties
- hash / Route properties
- title / Route properties
- nav / Route properties
- routes
- activating / Activating routes
- routing
- rules / Default validation rules
S
- SammyJS
- URL / Single Page Application (SPA) routing
- overview / An overview of SammyJS
- self keyword
- about / The this and self keywords
- service modules
- using / Using service modules
- shell viewmodel
- root, composing of / The composition system
- simple binding handlers
- about / Simple binding handlers
- animated binding handlers / Animated binding handlers
- working with third-party controls / Working with third-party controls
- DOM, modifying with handlers / Modifying the DOM with bindings
- new bindings, applying to children elements / Applying new bindings to new children elements
- order of binding handlers, controlling / Controlling the order of binding handlers
- simple extenders / Simple extenders
- Single Page Application (SPA) / Dynamic templates
- Single Page Application (SPA) routing
- about / Single Page Application (SPA) routing
- navigation, controlling / Controlling the navigation
- page components, creating / Creating page components
- pages, coordinating / Coordinating pages
- singleton
- versus instance / Singleton versus instance
- slideVisible binding
- small modules
- creating / Creating small modules
- Stack Overflow
- standard array functions, JavaScript
- about / Standard array functions
- states, pure computed observables
- listening / Pure computed observables
- sleeping / Pure computed observables
- StringInterpolatingBindingProvider demo
- subscribe function
- about / Manual subscriptions
- subscribing
- about / Publishing and subscribing
- Sugar.js
- about / JavaScript's compatibility
- Switch-Case, Knockout
- about / Knockout Switch-Case
T
- template binding
- about / Template binding
- reusable templates / Reusable templates
- recursive templates / Recursive templates
- dynamic templates / Dynamic templates
- template binding handler
- about / The template binding handler
- templated mode, advanced composition / The templated mode
- template engine
- about / The template engine
- template registration
- about / Template registration
- element ID / The element ID
- element instance / The element instance
- array, of DOM nodes / An array of DOM nodes
- document fragments / Document fragments
- HTML strings / HTML strings
- AMD module / Registering templates using the AMD module
- templates
- about / Templates
- template source / The template binding handler
- text plugin / The text plugin
- thenables
- about / Promises
- this keyword
- about / The this and self keywords
- throttling
- transclusion
- about / Widgets
- transitions, advanced composition / Transitions
- two-way bindings
- about / The data-bind syntax
- two way bindings
U
- UI datepicker, jQuery
- unit tests
- writing / Writing unit tests
- unmapping / Unmapping
- unobtrusive event handlers / Limit active bindings
- updates
- controlling / Controlling updates
- uppercase preprocessor / The uppercase preprocessor
- User Interface (UI) / An overview of Knockout
- utility methods
- remove / The utility methods
- removeAll / The utility methods
- destroyAll / The utility methods
- replace / The utility methods
- utility methods, Knockout
- ko.toJS / Serializing viewmodels
- ko.toJSON / Serializing viewmodels
V
- validation, Knockout
- about / Knockout Validation
- default rules / Default validation rules
- options, configuring / Configuring validation options
- binding handlers / Validation binding handlers
- custom rules, creating / Creating custom rules
- validationElement binding / Validation binding handlers
- validator function / Creating custom rules
- view, contacts list application
- about / The view
- edit form / The edit form
- contacts list / Contacts list
- view, MVVM pattern
- about / The view and the viewmodel
- cluttering / Cluttering the view
- view caching, advanced composition / View caching
- view locations
- about / View locations
- viewmodel
- versus model / A philosophical note on a model versus a viewmodel
- updating / Updating the viewmodel
- viewmodel, MVVM pattern
- about / The view and the viewmodel
- cluttering / Cluttering the viewmodel
- viewmodel registration
- about / The viewmodel registration
- constructor function / The constructor function
- singleton object / A singleton object
- factory function / The factory function
- AMD module used / Registering viewmodels using an AMD module
- viewmodels
- defining / Defining viewmodels
- this keyword / The this and self keywords
- self keyword / The this and self keywords
- issues, with prototypes / Problems with prototypes
- serializing / Serializing viewmodels
- preparing, with activate / Preparing viewmodels with activate
- viewpath strings, composition option / Viewpath strings
- views, composition option / Explicit models and views
- virtual template nodes
- closing / Closing virtual template nodes
W
- widgets, Durandal
- about / Widgets
- creating / Creating a new widget
- using / Using a widget
- modifying, with data-part attributes / Modifying widgets with data-part attributes
- Windows Presentation Foundation (WPF) / Observables
- with binding / The with binding
- writable computed observables
- about / Writable computed observables