WinJS.Namespace.define( 場所の指定 , { 名前 : 値 });これで指定の場所に指定の名前で変数を割り当てることができます。後は、場所と名前を正確に指定して値を利用するだけです。data-win-options="{itemDataSource:mydata.itemList.dataSource,
itemTemplate:select('#listTemp1')}"itemDataSourceには、mydata.itemList.dataSourceと値が指定されています。これは、mydataという場所にあるitemListというオブジェクトのdataSourceプロパティを示しています。これを念頭に置いて、スクリプト側のデータを準備している部分を見てみましょう。var dataList = new WinJS.Binding.List(dataArray);変数dataArrayに連想配列を代入し、「WinJS.Binding.List」というオブジェクトを作成しています。これが、ListViewで使用するリストとなるオブジェクトです。ListViewでは、表示するデータをこのListオブジェクトとして用意し設定します。このListオブジェクトのdataSourceプロパティにデータとなる連想配列が格納されています。
var members = { itemList: dataList };
WinJS.Namespace.define("mydata", members);作成したWinJS.Binding.ListオブジェクトをitemListという名前で連想配列にまとめ、それをWinJS.Namespaceの「define」というメソッドで名前空間に割り当てています。これで、mydataにitemListという名前でListオブジェクトが割り当てられました。※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※リストビューのタグの修正(テンプレートは別途用意)
<div id="listview1" data-win-control="WinJS.UI.ListView"
data-win-options="{itemDataSource:mydata.itemList.dataSource, itemTemplate:select('#listTemp1')}">
</div>
※スクリプトの修正
(function () {
"use strict";
WinJS.Binding.optimizeBindingReferences = true;
var app = WinJS.Application;
var activation = Windows.ApplicationModel.Activation;
// ListView用のデータ
var dataArray = [
{ title: "Windows", content: "WindowsはマイクロソフトのOSです。" },
{ title: "Mac OS X", content: "Mac OS Xはアップルが提供するOSです。Macにのみ搭載されています。" },
{ title: "Linux", content: "LinuxはオープンソースのOSです。標準搭載されるPCはまだ少数です。" },
{ title: "Android", content: "AndroidはGoogleが開発するOSです。スマートフォンやタブレット他、多数の危機に用いられています。" },
{ title: "iOS", content: "iOSはアップルのOSです。iPhone/iPadに搭載されています。" },
{ title: "Chrome OS", content: "Chrome OSはGoogleによるOSです。Chromebookに搭載される他、オープンソースで配布されてもいます。" }
];
var dataList = new WinJS.Binding.List(dataArray);
var members = { itemList: dataList };
WinJS.Namespace.define("mydata", members);
app.onactivated = function (args) {
if (args.detail.kind === activation.ActivationKind.launch) {
if (args.detail.previousExecutionState !== activation.
ApplicationExecutionState.terminated) {} else {}
args.setPromise(WinJS.UI.processAll());
}
}
app.oncheckpoint = function (args) {};
app.start();
})();
| << 前へ | 次へ >> |