Goal : Observable binding data to the controls using WinJS.Bind from the JS. Let’s bind a Student data to the text boxes located in the Html file. We will make this binding observable. On any changes made to the data will get reflected in the controls automatically.
Add a Student page control (Student.Html, Student.CSS, Student.JS) to the project. We will basically deal with Student.JS and Student.Html here.
Student.Html
– Add a element with few tex boxes. Here we have taken 3 text boxes to bind 3 fields of the student class. – Add a button. On click of the button the Student data gets changed. It will automatically reflected in the controls.
Student Id
Student Name
Student Height
Student.JS
// Get the parent element var students = document.getElementById("students"); // Student data var student = { studId:1, studName: "Nirmal", studHeight: "5ft 5inches" }; // Bind data to the parent div WinJS.Binding.processAll(students, student); // Make it observable var observableCol = WinJS.Binding.as(student); // Handle button click document.getElementById("btnChngVal").addEventListener("click", function () { if (observableCol.studId === 1) { observableCol.studId = 2; observableCol.studName = "Kiran"; observableCol.studHeight = "5ft 8inches"; } else { observableCol.studId = 1; observableCol.studName = "Nirmal"; observableCol.studHeight = "5ft 5inches"; } });
Now let’s debug the app to see the data observable binding.