koマッピングプラグインを使用して、JSオブジェクトからオブザーバブルを作成していますko.mapping.fromJS()
。
オブジェクトのスニペットは以下のとおりです。
{ Name: "blah", Parent: { Title: "blah", Url: "/blah" } }
変更するとParent.Title
、ページのすべてが期待どおりに更新されますが、Parent
nullになると問題が発生します。プロパティを使用する簡略化されたマークアップは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プロジェクトなので、もっと良い方法で何かできることがあれば教えてください:)
どんな助けでもいただければ幸いです。
ありがとう。