2013-03-28 50 views
-2

我使用John Papa的优秀SPA示例使用Breeze和Knockout来显示数据图。它主要是工作,但我坚持一个数组,我似乎无法在foreach循环中列出。微风与knockoutjs嵌套的foreach:找不到第三级数据

这是我的数据图: DataGraph

我没事到费用阵列。

这里的淘汰赛标记:。

 <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> 

我可以看到组织()名称()和状态()()的描述,但获得零收费的长度()。

我在淘汰赛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浏览器开发的监视表达式):

enter image description here

感谢

+0

您是否检查了浏览器控制台是否有任何绑定erorrs? – nemesv

+0

是的,我查找绑定错误,但没有。即使超过会员级别,html也显示正常 – Weej

回答

-1

你的客户端查询是什么样的?

我猜你错过了一个扩展'条款'去'费'导航属性。

+0

数据显示在所示图形中(请参阅红色箭头)。 – Weej

+0

当您调用MetadataStore.getEntityType(“费用”)时会得到什么? –

+0

我已将更多内容添加到问题的主体中。如果您希望查看更多的费用类型变量,请告诉我们。谢谢你的时间! – Weej

0

对于在同一元素上使用文本和foreach绑定,您应该会得到一个绑定错误。 (多个绑定(文本和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>