Breeze (1.3.1 から 1.3.6) と Durandal (1.1.? から 1.2.0) Knockout (2.2.1 は変更されていません) の新しいバージョンでプロジェクトを更新しました。
次のようなノックアウト バインディングがあります。
<div id="payerListBody" class="span11" data-bind="foreach: payers">
<div class="row" data-bind="click: $parent.payerClicked">
<div class="span1" data-bind="text: shortName"></div>
<div class="span5" data-bind="text: name"></div>
<div class="span2" data-bind="if: contact"> <---- this binding now produces an error
<div class="span2" data-bind="foreach: contact().phones()">
<span class="span2" data-bind="text: fullPhone() + '-' + contactScope().name()"></span>
<br />
</div>
</div>
</div>
<div class="ui-state-highlight" data-bind="click: $parent.payerClicked"></div>
</div>
更新前は正常に機能していましたが、エラーが発生しました:
「バインディングを解析できません。メッセージ: ReferenceError: 連絡先が定義されていません。バインディング値: if: 連絡先」
Contact 属性は、Payer クラスに関連付けられた必須ではない複合型です。
public class Payer : BaseData
{
public Payer()
{
Incentives = new List<PayerIncentiveProgram>();
}
public string Name { get; set; }
public string ShortName { get; set; }
public Contact Contact { get; set; }
public Boolean HasIncentiveProgram { get; set; }
public ICollection<PayerIncentiveProgram> Incentives { get; set; }
}
洞察をありがとう...