我正在使用 John Papa 的优秀 SPA 示例,使用 Breeze 和 Knockout 来显示数据图。它大部分都在工作,但我被困在一个似乎无法在 foreach 循环中列出的数组中。
这是我的数据图:
我对费用数组很好。
这是淘汰赛标记:
<div id="memberships" class="span9">
<div class="span8">Memberships</div>
<div class="span9 table-bordered" data-bind="foreach: memberships()">
<span class="span5" data-bind="text: organization().name()"></span> <span class="span3" data-bind="text: ' Status:' + status().description()"></span>
<div class="label-important span2" data-bind="text: 'Dues paid:'"></div>
<div class="span5" data-bind="text: 'dues count:' + fees().length, foreach: fees()">
<div data-bind="text: 'Method:' + payMethod()"></div>
<div data-bind="text: receivedOn()"></div>
<div data-bind="text: membershipYear()"></div>
</div>
</div>
</div>
我可以看到organization().name() 和status().description(),但是fees() 的长度为零。
我在淘汰赛 foreach 循环中查看了此类问题的其他答案,问题似乎在于数组是否是 observableArray。然而,在这种情况下,Breeze 正在设置它,所以我无法判断我做错了什么或者 Breeze 是。
这是微风的EntityQuery:
var getPhysicianDetails = function (physicianObservable) {
var id = physicianObservable().id();
var query = EntityQuery.from('Physicians')
.expand(
"ContactInfo.Emails.Scope, " +
"ContactInfo.Phones.Scope, " +
"ContactInfo.Addresses.Scope," +
"PhysicianSpecialties.Specialty, " +
"PhysicianNotes, " +
"Memberships.Organization, " +
"Memberships.Status," +
"Memberships.Fees.PayNotes," +
"IncentivePrograms.Notes," +
"PhysInOrgs.Organization, " +
"IncentivePrograms.IncentiveProgram.Payer," +
"PhysicianPayers.Payer"
)
.where("id", "==", id);
当我执行 getEntityType("Fee") 时,我得到了这个(来自 Chrome Dev 的 Watch Expressions):
谢谢