Thoughts from the Wet Coast
The musings of an ASP.NET Developer from Canada's We(s)t Coast
Welcome to the new look “Thoughts from the Wet Coast”. This is the third incarnation of my blog. This time there have been a lot of changes.
A Responsive Skin
The first obvious change is the look of the site. I have created a new responsive skin for my site based on – you guessed it – Twitter Bootstrap. Twitter Bootstrap appears to be the #1 framework these days for developing responsive websites, and its fairly easy to integrate into a DNN 7 skin. My new skin is based on Twitter Bootstrap 3. The skin is quite basic and looks like a typical Twitter Bootstrap site. It was very easy to incorporate Bootstrap into a standard DNN skin and I am thinking of writing a blog to demonstrate how easy it is.
In the original Star Wars movie there is a classic scene where Obi-Wan and Luke enter the Tatooine Space-port.
As Senior Architect for DNN Corp I get to be involved in interviewing candidates for developer positions within the company. Thankfully, I don’t have any direct management responsibilities - its not what I enjoy - but I am asked to interview candidates to determine both their technical competence as well as to help determine whether they will fit with the team chemistry.
A Happy New Year to all readers of my Blog. I hope 2013 was a good year for you and that 2014 will be prosperous for you and yours.
Here on the Wet Coast, one of my New Year’s resolutions has been to be more regular in my blogging activity, and I have already made some plans in that regard.
So, in the last post on Knockout.js, I introduced the concept of Observable Arrays. Observable Arrays can respond to a change in the number of items in the collection (array).
Lets look first at Adding items to an observable array. Lets add a method to our ViewModel to add a task to the tasks array that we created in the previous post.
Just as an observable responds to changes in an object, an observable array responds to a change in the number of items in the array. It tracks which objects are in the array - not the state of those objects.
So far we have seen how we can set up simple observable values. But what if we want to have calculated values in our ViewModel.
Lets extend our ViewModel from the previous examples, by renaming our personName property as firstName and add a second property called lastName.
So far in this series on Knockout.js we have seen how to do simple data-binding and how to use observables to automatically update the data bound elements. The real power of knockout though is its support of two-way data-binding.
What do we mean my two-way data-binding?
ASP.NET developers are familiar with the concept of data-binding - the ability to bind a control to a data source and update the control based on the value of the data source. Two way data-binding allows the control (View) to update the data source if its value changes.
In the previous post in this series I introduced the concept of simple one-way data binding. However the real power of knockout is its support of observables and two-way binding.
The concept of observable objects or observable collections was developed for WPF (Xaml) and Silverlight.
In the first part of this blog series on Knockout.js, I introduced the MVVM (Model-View-ViewModel) nature of the framework. In this second post I will show how Knockout’s data-binding works.
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.