Я работаю над окном app (winjs) с шаблоном навигации, все, что я пытаюсь сделать, - это когда я открываю приложение на странице home.html, список претендентов/кандидатов должен быть загружен. вот мой код, над которым я работал. но это агония меня Foreach неопределенWinJS «forEach» Undefined
(function() {
"use strict";
WinJS.UI.Pages.define("/pages/startpage/startpage.html", {
// This function is called whenever a user navigates to this page. It
// populates the page elements with the app's data.
ready: function (element, options) {
// TODO: Initialize the page here.
var titlesListGrouped = new WinJS.Binding.List().createGrouped(
function (i) { return i.ApplicantName.charAt(0).toUpperCase(); },
function (i) { return { firstLetter: i.ApplicantName.charAt(0).toUpperCase() }; }
);
var list = q("#ApplicantListView").winControl;
list.itemDataSource = titlesListGrouped.dataSource;
list.itemTemplate = q("#ApplicantTemplate");
list.groupDataSource = titlesListGrouped.groups.dataSource;
list.groupHeaderTemplate = q("#headertemplate");
WinJS.xhr({ url: "http://localhost/applicants/processing/getapplicant.php", })
.then(function (xhr) {
var applicants = JSON.parse(xhr.response).d;
applicants.forEach(function (i) {
var item = {
ApplicantId: i.ApplicantId,
ApplicantName: i.ApplicantName,
clickFunction: function (args) { WinJS.Navigation.navigate("/pages/details/details.html", item); }
};
item.clickFunction.supportedForProcessing = true;
titlesListGrouped.push(item);
});
});
},
unload: function() {
// TODO: Respond to navigations away from this page.
},
updateLayout: function (element) {
/// <param name="element" domElement="true" />
// TODO: Respond to changes in layout.
}
});}
, и код HTML
<section class="page-section" aria-label="Main content" role="main">
<div id="headerTemplate" data-win-control="WinJS.Binding.Template">
<div>
<p data-win-bind="innerText:firstLetter"></p>
</div>
</div>
<div id="ApplicantTemplate" data-win-control="WinJS.Binding.Template">
<div data-win-bind="onclick:clickFunction">
<div class="appId" data-win-bind="innerText:ApplicantId"></div><br />
<div class="appName" data-win-bind="innerText:ApplicantName"></div>
</div>
</div>
<div id="ApplicantListView"
data-win-control="WinJS.UI.ListView"></div>
</section>
и это мой PHP, который генерирует данные JSon
<?php
header('Allow-Control-Allow-Origin:*');
$database = mysqli_connect('localhost','root','','tech_m');
$query = "SELECT * from `applicant_table`";
$rs = mysqli_query($database, $query);
while($assoc = mysqli_fetch_assoc($rs)){
//echo "Access Granted";
$ApplicantId = $assoc['app_id'];
$ApplicantName = $assoc['app_name'];
$rows[] = array('ApplicantId' =>$ApplicantId ,'ApplicantName' =>$ApplicantName);
}
$response['rows'] = $rows;
$encodedfile = json_encode($response);
echo $encodedfile; ?>
пожалуйста, если кто-то может помочь в этом, это было бы большой помощью.
Для 'JSON.parse (xhr.response) .d', почему существует' .d' часть? Это ошибка ввода? –
[я следил за этим примером] (http://www.codefoster.com/win8pagenav/) @ ElvisXia-MSFT –