我正在使用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()但是费用的长度为零()。
我在淘汰赛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(“费用”)时,我得到了这个(来自Chrome Dev的Watch表达式):
由于
答案 0 :(得分:0)
对于在同一元素上使用text和foreach绑定,您应该遇到绑定错误。 (多个绑定(text和foreach)试图控制同一元素的后代绑定。你不能在同一个元素上一起使用这些绑定。;)
你可以改变这个:
<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 class="span5">
<div data-bind="text: 'dues count:' + fees().length"></div>
<!-- ko foreach: fees -->
<div data-bind="text: 'Method:' + payMethod()"></div>
<div data-bind="text: receivedOn()"></div>
<div data-bind="text: membershipYear()"></div>
<!-- /ko -->
</div>
答案 1 :(得分:-1)
您的客户端查询是什么样的?。
我猜你错过了一个扩展'子句'来到'费用'导航属性。