koマッピングプラグインを使用して、JSオブジェクトからオブザーバブルを作成していますko.mapping.fromJS()。
オブジェクトのスニペットは以下のとおりです。
{ Name: "blah", Parent: { Title: "blah", Url: "/blah" } }
変更するとParent.Title、ページのすべてが期待どおりに更新されますが、Parentnullになると問題が発生します。プロパティを使用する簡略化されたマークアップはParent次のようになります。
<p data-bind="if: HasParent">Up: <a data-bind="text: ParentTitle"></a></p>
HasParentこのように見えます:
self.HasParent = ko.computed(function () {
return self.Parent;
});
ParentTitleこのように見えます:
self.ParentTitle = ko.computed(function () {
return self.HasParent() ? self.Parent.Title() : "";
});
注:selfは、から戻った結果に設定され、ko.mapping.fromJS()を呼び出すことによってページに適用されますko.applyBindings();
したがって、基本的に私の問題は、HasParent関数が常に真の値を返すことです。
また、これは私の最初のkoプロジェクトなので、もっと良い方法で何かできることがあれば教えてください:)
どんな助けでもいただければ幸いです。
ありがとう。