Index
A
- add-to-cart-button component
- updating / Updating the add-to-cart-button component
- add-to-cart-modal template / The add-to-cart-modal template
- add product view / The add product view
- add product view-model / The add product view-model
- AJAX errors
- handling / Handling AJAX errors
- AMD Module
- normal module, converting to / Converting a normal module into an AMD module
- app.js file
- defining / Defining the app.js file
- application
- limitations / The limits of the application
- life cycle / Introduction
B
- bindings
- creating, to debug / Create a binding to debug – the toJSON binding
- semantic binding / Being semantic with our bindings
- descendant bindings, controlling / Controlling descendant bindings
- virtual elements, using / Using virtual elements
- data, preprocessing / Preprocessing data before binding
- and events / Events and bindings
- about / Events, bindings, and Knockout components
- RequireJS, applying / Applying RequireJS to bindings
- Bootstrap
- URL / Installing components
- browserify
C
- cart-item template / The cart-item template
- cart-widget template / The cart-widget template
- cart.html view, cart model
- about / The cart view
- cart module
- about / The cart module
- cart.html view / The cart view
- cart view-model / The cart view-model
- CartProduct service
- creating / Creating the CartProduct service
- cart service / The cart service
- cart template / The cart template
- cart view-model
- about / The cart view-model
- catalog module
- about / The catalog module
- catalog view / The catalog view
- catalog viewmodel / The catalog view-model
- products, adding / Adding products to the catalog
- catalog template / The catalog template
- catalog view, catalog module
- about / The catalog view
- catalog viewmodel, catalog module
- about / The catalog view-model
- child routes
- about / Child routers
- click binding
- click event
- about / The click event
- parameters, passing / Passing more parameters
- default click action, allowing / Allowing the default click action
- collections
- managing, observables used / Managing collections with observables
- elements, inserting / Inserting elements in collections
- CommonJS
- components
- installing / Installing components
- about / Components – isolated view-models
- RequireJS, applying / Applying RequireJS to components
- compositions
- about / Compositions
- object composition / Object composition
- visual composition / Visual composition
- URL / Visual composition
- computed observables
- about / Computed observables
- console
- about / The console
- URL / The console
- CRUD
- defining / Defining CRUD
- Create (C) / Defining CRUD
- Retrieve (R) / Defining CRUD
- Update (U) / Defining CRUD
- Delete (D) / Defining CRUD
- CRUD operations
- setting, in resource / Setting CRUD operations in the resource
- CRUD operations
- setting, in resource / Setting CRUD operations in the resource
- currency binding
- about / The currency binding
- custom bindings
- about / Custom bindings
- element / Custom bindings
- valueAccessor / Custom bindings
- allBindings / Custom bindings
- viewModel / Custom bindings
- bindingContext / Custom bindings
- toggle binding / The toggle binding
- currency binding / The currency binding
- jQuery plugin, wrapping / Wrapping a jQuery plugin into a custom binding
- customer model
- extending / Extending the customer model
- URL / Extending the customer model
D
- data
- mock data generating, MockJSON used / Generating mock data with MockJSON
- about / Separation of concerns – behavior and data
- validating / Validating data
- declarative binding / The view
- delegation pattern
- about / Delegation pattern
- dependencies
- managing, RequireJS used / Using RequireJS to manage dependencies
- descendant bindings
- controlling / Controlling descendant bindings
- Durandal
- installing / Installing Durandal
- starter kit, URL / Installing Durandal
- HTML Samples.zip file, URL / Installing Durandal
- patterns / Durandal patterns
- Single Page Application (SPA) framework / Durandal patterns
- Model-View-ViewModel (MVVM) pattern / Durandal patterns
- Asynchronous Module Definition (AMD) pattern / Durandal patterns
- index.html file / The index.html file
- main.js file / The main.js file
- life cycle / Durandal life cycle
- jQuery promises / The promise pattern
- page, building with / Building a page with Durandal
- Durandal, life cycle
- about / Durandal life cycle
- activation, life cycle / The activation life cycle
- canDeactivate / The activation life cycle
- canActivate / The activation life cycle
- deactivate / The activation life cycle
- activate / The activation life cycle
- getView / The activation life cycle
- viewUrl / The activation life cycle
- binding / The activation life cycle
- bindingComplete / The activation life cycle
- attached / The activation life cycle
- compositionComplete / The activation life cycle
- detached / The activation life cycle
- promise pattern / The promise pattern
- compositions / Compositions
- router / Router
- navigation, triggering / Triggering navigation
- widgets / Widgets
E
- edit view / The edit view
- edit view-model / The edit view-model
- elements
- inserting, in collections / Inserting elements in collections
- event-driven programming
- about / Event-driven programming
- event binding
- about / Event binding
- events
- click event / The click event
- bubbling / Event bubbling
- types / Event types
- standard events / Event types
- non standard events / Event types
- Mozilla-specific / Event types
- unobtrusive events, with jQuery / Unobtrusive events with jQuery
- custom events, building / Building custom events
- and bindings / Events and bindings
- about / Events, bindings, and Knockout components, Events
- updating / Updating events
- RequireJS, applying / Applying RequireJS to events
- subscribing / Events
- unsubscribing / Events
- triggering / Events
- extenders
- about / Extending the product model
- URL / Extending the product model
F
- finish-order-modal template / The finish-order-modal template
G
- GitHub
- URL / Summary
- Github repository
- URL / Summary
- GitHub repository
- Grunt
- URL / Updating events
- Gulp
- URL / Updating events
H
- header template / The header template
- HTTP requests
- mocking, Mockjax used / Using Mockjax to mock HTTP requests
I
- ID
- product, retrieving by / Retrieving a product by ID
- index.html file, Durandal
- about / The index.html file
J
- JavaScript modules
- jQuery
- URL / Installing components
- used, for managing templates / Managing templates with jQuery
- unobtrusive events / Unobtrusive events with jQuery
- jQuery AJAX calls
- jQuery documentation
- URL / Building custom events
- jQuery plugin
- wrapping, into custom binding / Wrapping a jQuery plugin into a custom binding
K
- Knockmeout
- Knockout
- URL / Observables to refresh the UI automatically, The header template, The catalog template
- components / Events, bindings, and Knockout components
- releases, URL / Setting up the project
- Knockout
- JSON, URL / Create a binding to debug – the toJSON binding
- custom bindings, URL / Using virtual elements
- Knockout.js
- about / KnockoutJS and the MVVM pattern
- advantages / KnockoutJS and the MVVM pattern
- URL / Installing components
- Knockout context debugger
- Knockout documentation
- URL / Computed observables
- KnockoutJS
- project, preparing / Preparing the project
- Knockout Validation
- URL / Validating data
- ko.JS
- URL / Creating a new product
- koCart
- koExternalTemplateEngine
- used, for managing templates / Managing templates with koExternalTemplateEngine
L
- log service / The log service
M
- main.js file, Durandal
- about / The main.js file
- text / The main.js file
- durandal / The main.js file
- plugins / The main.js file
- transitions / The main.js file
- knockout / The main.js file
- bootstrap / The main.js file
- jQuery / The main.js file
- Mockjax
- using, to mock HTTP requests / Using Mockjax to mock HTTP requests
- URL / Using Mockjax to mock HTTP requests
- MockJSON
- used, for generating mock data / Generating mock data with MockJSON
- mocks
- RequireJS, applying / Applying RequireJS to mocks
- model
- about / The model
- models module
- about / The Models module
- module pattern
- about / The module pattern
N
- navigation
- triggering / Triggering navigation
- Node.js
- URL / Updating events
- non-standard events / Event types
- normal module
- converting, into AMD module / Converting a normal module into an AMD module
O
- object composition / Object composition
- observables
- about / Observables to refresh the UI automatically
- used, for managing collections / Managing collections with observables
- order
- sending, to server / Sending the order to the server
- order module
- about / The order module
- order view / The order view
- order viewmodel / The order view-model
- order template / The order template
- order view
- about / The order view
- order viewmodel
- about / The order view-model
P
- $parent object
- page
- building, with Durandal / Building a page with Durandal
- product
- retrieving, by ID / Retrieving a product by ID
- new product, creating / Creating a new product
- service, creating / Creating the product service
- updating / Updating a product
- deleting / Deleting a product
- model, extending / Extending the product model
- products
- adding, to catalog / Adding products to the catalog
- add product view / The add product view
- edit view / The edit view
- add product view-model / The add product view-model
- mocks, making real / Making mocks real
- edit view-model / The edit view-model
- project
- setting up / Setting up the project
- routing / Routing the project – the shell view-model
- grouping, by feature / Grouping code by feature – managing big projects
- conventions, URL / Grouping code by feature – managing big projects
- grouping files by feature, URL / Grouping code by feature – managing big projects
- promise
- URL / Setting CRUD operations in the resource
- about / Setting CRUD operations in the resource
- .done(callback) method / Using resources in the view-model
- .fail(callback) method / Using resources in the view-model
- .then(successCb, errorCb) method / Using resources in the view-model
- .always(callback) method / Using resources in the view-model
- promise pattern
- about / The promise pattern
R
- Representational State Transfer (REST)
- about / REST services
- URL / REST services
- RequireJS
- used, for managing dependencies / Using RequireJS to manage dependencies
- URL / Using RequireJS to manage dependencies
- configuring / Configuring RequireJS
- using, in project / Using RequireJS in our project
- applying, to components / Applying RequireJS to components
- applying, to mocks / Applying RequireJS to mocks
- applying, to bindings / Applying RequireJS to bindings
- applying, to events / Applying RequireJS to events
- resources
- CRUD operations, setting / Setting CRUD operations in the resource
- using, in view-model / Using resources in the view-model
- resources module
- about / The Resources module
- REST services
- about / REST services
- revealing module pattern
- URL / The model
- router
- about / Router
- nav parameter / Router
- title parameter / Router
- hash parameter / Router
- splat routes / Router
- parameters / Route parameters
- route / Routing the project – the shell view-model
- title / Routing the project – the shell view-model
- moduleId / Routing the project – the shell view-model
- nav / Routing the project – the shell view-model
- routes
S
- semantic binding
- about / Being semantic with our bindings
- services module
- about / The Services module
- shell template / The navigation and shell templates
- shell view
- about / The shell view
- shell view-model
- shell viewmodel
- about / The shell view-model
- shop module
- about / Creating the Shop module
- Singleton pattern
- URL / Singleton resources
- Singleton resources / Singleton resources
- standard events / Event types
T
- template engine
- updating / Updating the template engine
- templates
- creating / Creating templates
- header template / The header template
- catalog template / The catalog template
- add-to-cart-modal template / The add-to-cart-modal template
- cart-widget template / The cart-widget template
- cart-item template / The cart-item template
- cart template / The cart template
- order template / The order template
- finish-order-modal template / The finish-order-modal template
- handling, if bindings used / Handling templates with if and ifnot bindings
- handling, ifnot bindings used / Handling templates with if and ifnot bindings
- managing, jQuery used / Managing templates with jQuery
- managing, koExternalTemplateEngine used / Managing templates with koExternalTemplateEngine
- textInput binding
- Toastr
- URL / Setting up the project
- toggle binding
- about / The toggle binding
- toJSON binding
U
- unobstrusive event handlers
- URL / Delegation pattern
V
- view
- about / The view
- view, shell
- about / The shell view
- view, widgets
- writing / Writing the widget view
- view-model
- resources, using / Using resources in the view-model
- viewmodel
- about / The view-model
- viewmodel, shell
- about / The shell view-model
- ViewModel, widgets
- writing / Writing the widget view-model
- ViewModel module
- about / The ViewModel module
- virtual elements
- using / Using virtual elements
- visual composition
- about / Visual composition
W
- widgets
- about / Widgets
- setting up / Setting up widgets
- URL / Setting up widgets
- view, writing / Writing the widget view
- ViewModel, writing / Writing the widget view-model
- registering / Registering the widget
- with binding
- World Wide Web Consortium (W3C)
- about / REST services