データ ビューモデルのノックアウト コードを表示できる MVC 4 シングル ページ アプリケーションがあります。ビューで foreach を実行すると、ループを通過するたびにドットが表示されますが、データが表示されません。監視可能な配列に 50 個の要素があるように見えますが、それぞれにデータはありません。それでも、getJson 呼び出しを実行すると、データが json 形式で表示されます。なにが問題ですか?
これが私のcaapproval.htmlビューコードです-
<section>
<h2 class="page-title" data-bind="text: title"></h2>
<br /> <br /> <br />
<ul data-bind="foreach: allCertificates">
<li>
<span data-bind="text: UserName"></span>
<span data-bind="text: StatusCode"></span>
</li>
</ul>
</section>
私の caapproval.js ビューモデル コード -
define(['services/logger'], function (logger) {
var Certificate = function (ClientID, RequestDate, UserName, StatusDescription, StatusCode, StatusDesc, CEOUserName ) {
var self = this;
self.ClientID = ko.observable(ClientID);
self.RequestDate = ko.observable(RequestDate);
self.UserName = ko.observable(UserName);
self.StatusDescription = ko.observable(StatusDescription);
self.StatusCode = ko.observable(StatusCode);
self.StatusDesc = ko.observable(StatusDesc);
self.CEOUserName = ko.observable(CEOUserName);
};
var allCertificates = ko.observableArray();
var vm = {
allCertificates: allCertificates,
activate: activate,
title: 'Certificates'
};
return vm;
function getallCertificates() {
$.getJSON('/api/caapproval', function (data) {
allCertificates([]);
var temp = allCertificates();
data.forEach(function (p) {
var certificate = new Certificate(p.ClientID, p.RequestDate, p.UserName, p.StatusDescription, p.StatusCode, p.StatusDesc, p.CEOUserName);
temp.push(certificate);
});
allCertificates.valueHasMutated();
return allCertificates();
});
}
//#region Internal Methods
function activate() {
logger.log('CA Approval View Activated!!', null, 'CA Approval', true);
return getallCertificates();
}
//#endregion
});