HTML and CSS Reference
In-Depth Information
var randomNumber = { generatedValue: Math.floor((Math.random()*100)+1) };
// Enable binding on the HTML element of choice
var bindableElement = document.getElementById("numberContainer");
WinJS.Binding.processAll(bindableElement, randomNumber);
The two lines you added tell the Windows 8 runtime environment that the element named
numberContainer —the SPAN element—should be processed and bound to any content it can get
from the object randomNumber. At this point, the markup below now has full significance:
<span id="numberContainer" data-win-bind="innerText: generatedValue"></span>
The property innerText of the SPAN element named numberContainer will display the value
assigned to the property generatedValue of bound object randomNumber . Is that all? Well, not yet.
The missing link is when the code written in default.js will actually run. For this, you need one more
edit to default.js. You edit the line that calls setPromise, as shown below:
app.onactivated = function (args) {
if (args.detail.kind === activation.ActivationKind.launch) {
if (args.detail.previousExecutionState !==
activation.ApplicationExecutionState.terminated) {
// Initialize your application here.
document.addEventListener("DOMContentLoaded", displayGeneratedNumber);
} else {
// Restore application state here.
Next, you also add a new custom function called init at the bottom of the default.js ile.
function init() {
Are there any lessons you can learn from this example?
First and foremost, data binding is a powerful mechanism that unfolds all of its power when you
really manage enough complexity. Using declarative data binding when you only need to display
one piece of data is probably overkill. In this case, direct use of innerHtml is preferable. When you
have a list of items or multiple pieces of a single data item, then declarative data binding is preferable
Search WWH ::

Custom Search