Learning KnockoutJS

Create powerful data-driven web applications using KnockoutJS, with the help of real-world examples
4.6 (9 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
103 students enrolled
80% off
Take This Course
  • Lectures 21
  • Length 2 hours
  • Skill Level Beginner Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 9/2015 English

Course Description

Among the various JavaScript libraries available to developers, KnockoutJS really stands out due to the diverse features it provides and also because it promotes the use of the Model-View-ViewModel (MVVM) design pattern to build data-driven web applications. Construct power-packed apps without compromising on its flexibility and build rich user interfaces, which will update in real-time when the data model state changes, eliminating the need to refresh pages.

Learning KnockoutJS will walk you through all of the key features of KnockoutJS and make it easy for you to quickly and easily build feature-and data-rich web applications that are easy to extend and maintain.

We start off with a brief introduction to KnockoutJS, and its various benefits, and explore the different design patterns in context of KnockoutJS to make your JavaScript code cleaner and more manageable. After that, we will walk through and understand the relationship between Models, Views, and ViewModels, as well as creating them.

Along with that, you will also learn how we can use the different data binding attributes to manipulate the output. We will also discuss and implement various important concepts such as two way data binding and dependency tracking to update your UI in real-time and to separate the components of your application into logical parts.

We will analyze Knockout's template feature to help you deal with data context in most scenarios. Then, we will take a look at how to track the changes in dependencies and subscribe to them using computed observables and subscriptions. Furthermore, you will also learn how to customize bindings and functions as well as using extenders to create our own set of Knockout tools. Finally, we will take a look at some advanced features of KnockoutJS to take your knowledge to the next level!

Learning KnockoutJS is more than just an introduction; it's a complete course on one of JavaScript's innovative libraries.

About The Author

Robert Gaut is a father, husband, musician, photographer, martial artist, and software developer. He began his career teaching application and database development at a technical college. After several years teaching, he spent more than a decade developing web-based content management systems for the automotive industry. He currently works for a large public school district where he develops business applications and data integration processes using Microsoft technologies.

What are the requirements?

  • Some understanding of jQuery and AJAX would be helpful, but is not necessary.

What am I going to get from this course?

  • Use the Model-View-ViewModel software design pattern to build amazing web applications and powerful user interfaces
  • Configure your application to track the changes in the UI and update data automatically
  • Enhance the functionality of your app and make it more interactive by extending the components of your code

Who is the target audience?

  • If you have ever wanted to create rich, responsive, and dynamic user interfaces without mixing a lot of script, this course will give you everything you need to accomplish that goal with Knockout.JS. Users will need basic knowledge of JavaScript and HTML.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Introducing KnockoutJS

This video will provide an overview of what will be taught in this course. We will orient the viewer on what KnockoutJS is and what it can accomplish for them; also, a sample project will be demonstrated.


We will explain the MVVM software design pattern in relation to other MV* patterns (such as MVC and MVP). Describe how KnockoutJS uses MVVM in a web environment.


Describe the Observer software design pattern and how KnockoutJS implements it using the observable and observableArray data types.


There are many ways to get JavaScript to mimic the class structure of OOP languages. Examine several popular methods and then introduce the Module pattern and Revealing Module Pattern.

Section 2: Displaying Data Using KnockoutJS

We will create a website with the necessary Models, Views, and ViewModels to establish a KnockoutJS application.


In order to display our model's data, we need to add data-binding syntax to the markup in our View.


There are several ways to data-bind attributes on HTML elements with KnockoutJS. We will take a look at three ways of manipulating attributes with KnockoutJS.

Section 3: Two-way Data Binding in KnockoutJS

We will take a closer look at how to update the View Model from an HTML form element as well as populate an HTML form element with data from the View Model.


Investigate how to data-bind various HTML form elements with KnockoutJS.


Demonstrate additional bindings that can help control the appearance and functionality of HTML form elements.

Section 4: Understanding Context in KnockoutJS

Context is fundamental to the MVVM pattern and data-binding. Yet, it's often misunderstood. Demonstrate and explain the commonly used context objects in KnockoutJS.


Templates allow Knockout developers to consolidate and share UI elements among many data-binding scenarios. Templates create a new binding context; it's necessary to understand how to deal with the new context.


Sometimes, it's necessary to use multiple ViewModels in a single View. We examine a few methods to compose a View and View Model using multiple ViewModels.

Section 5: Using Computed Observables and Subscriptions

There are times when you want to bind to a different representation of your data than what is provided in the raw data. Using computed and pureComputed observables, you can accomplish this task.


Subscribing to observables allows you to intercept changes made to them and perform additional tasks.

Section 6: Custom Bindings, Custom Functions, and Extenders

You can attach custom functions to Knockout's core value types to extend their functionality.


Extenders allow you to augment the functionality of observables by adding new properties.


Custom bindings are a way of encapsulating behavior and exposing it in the same way in which you use 'text' or 'foreach' bindings.

Section 7: Previewing Advanced KnockoutJS

Components and custom elements allow you to consolidate often-used code into a single, reusable unit.


AMD module loaders make it easy to modularize your code and load dependencies.


Durandal is a framework that uses KnockoutJS and RequireJS to build single-page applications.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Packt Publishing, Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.

Ready to start learning?
Take This Course