HTML and CSS Reference
In-Depth Information
var store=WinJS.Utilities.query("#addItemFlyout #stores")[0].value;
ViewModel.UserData.addItem(item, quantity, store);
// … other namespace definitions omitted for brevity
I have created a UI.Flyouts object that denes the setupAddItemFlyout function. This
function populates the select control from the view model, and when the Add button is clicked,
it reads the values from the input and select elements and uses them to create a item in the
grocery list.
When I am done with the flyout, I locate the div element and use the winControl property
to get the WinJS members that are specific to flyouts. The hide method dismisses the flyout and
returns the user to the main layout. I perform the same task on the AppBar element, which would
otherwise be left visible when the flyout is closed. See the WinJS API documentation for details of
the other methods available through the winControl property of AppBar and flyout elements.
Of course, defining this code isn't enough; I have to call the function from the default.js
file, as shown in Listing 3-8.
Listing 3-8. Calling the Code to Set Up the Flyout Controls
function performInitialSetup(e) {
WinJS.UI.processAll().then(function () {
Using Pages
Earlier in the chapter, I used HTMLControl to import fragments into my main HTML document.
The main limitation in using HTMLControl is that you can't arrange to be notified when your
content is loaded. This is fine for content when you are using fragments just to reuse regions of
markup, but the HTMLControl isn't much help if you want to load content fragments dynami-
cally in response to user input.
HTMLControl is a simple declarative wrapper around a more complex WinJS feature called
pages . Pages must be set up and managed in JavaScript, but they provide a richer set of func-
tions and, crucially, support callbacks that can be used to integrate content at any point in the
application's life cycle.
Search WWH ::

Custom Search