HTML and CSS Reference
In-Depth Information
Adding pictures to the user interface
To display the retrieved pictures, you can use a Windows 8
ListView
. In
default.html
you already have
a
DIV
element bound to the
ListView
component. The next step consists of binding the
ListView
to a
data source and defining an item template.
Because you just want to display pictures, the HTML item template can be simple, as shown below:
<div id="picturesItemTemplate"
data-win-control="WinJS.Binding.Template" style="display: none;">
<div class="listItem">
<img id="picture" data-win-bind="src: photoUrl" alt="" />
</div>
</div>
The
src
attribute of the
IMG
element is bound to the
photoUrl
property of the bound data object.
You add the template at the beginning of the body for the
default.html
page.
As you did in the first exercise of this chapter, you also define a binding list object at the top of the
flickrApp.js
ile:
WinJS.Namespace.define("FlickrFeed", { Pictures: new WinJS.Binding.List() });
You populate the list during the enumeration of the JSON content.
flickrApp.parseFeed = function (json) {
var pictures = JSON.parse(json);
for (var i = 0; i < pictures.items.length; i++) {
var pictureElement = {};
pictureElement.photoUrl = pictures.items[i].media.m;
// Add the object to the listview
FlickrFeed.Pictures.push(pictureElement);
}
}
Finally, you bind the
ListView
to the
FlickrFeed.Pictures
list. In
default.html
you add the following
markup:
<div id="picturesList" data-win-control="WinJS.UI.ListView"
data-win-options="{ itemDataSource: FlickrFeed.Pictures.dataSource,
itemTemplate: picturesItemTemplate,
layout: {type: WinJS.UI.GridLayout} }">
</div>
Search WWH ::
Custom Search