Breeze と Knockout を使用してデータ グラフを表示する John Papa の優れた SPA の例を使用しています。それはほとんど機能していますが、 foreach ループでリストできないように見える配列で立ち往生しています。
ここに私のデータグラフがあります:
Fees配列までは大丈夫です。
ノックアウト マークアップは次のとおりです。
<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 から):
ありがとう