0
私はこのようなビューモデルがあります:私は、ディープ観測とのforeachテンプレート
今m.a(new thing());
:私は(m
は私viewModel
です)これを実行しようとするいくつかの時点で
function viewModel() {
this.a = ko.observable();
}
をこのようなテンプレートバインディング:
<ul data-bind="template: { name: 't', foreach: a().b }"></ul>
しかし、何かが起こる前にクラッシュするa()
は、最初はundefined
またはnull
です。だから私はこの変化を試みた:
<ul data-bind="template: { name: 't', foreach: a.b }"></ul>
をしかし、これは、今、それがクラッシュしていないので、奇妙であるが、単一の空のアイテムをレンダリング、テンプレートt
を使用して、それが間違っているのです。
私はここで少し犠牲になっていますが、私はソースを定義することができたと思っていましたが、変更されたものはちょうど更新するものですが、私は間違っているの?
投稿直後、私はそれが 'dependentObservable'で動作することを発見したので、私はそのatmを使用しています。私は式を使用することを考えましたが、バインディングでどのように動作するのか見当たらないので、私はそれを排除しました。これが要件であるかどうか知っていますか?もしあなたが深い観察可能なものを持っていれば、右側は依存しなければならないのですか?ああ、これはあまり意味がありません。私はこのようなビューモデルで短絡してはいけません... –
理想的には、テンプレートに "a"機能をラップします。次に、そのテンプレート「
」を呼び出します。 'a'がnullの場合、レンダリングされません。テンプレートの中で、 'b'を自由に使うことができます。 –KO 1.3では、コントロールフローバインディングを使用して、これをさらに簡単にすることができます: '