私は asp.net mvc プロジェクトで Breeze を使用しています。
次の計算関数を定義しました。
var isDetached = ko.computed(function () {
if (rolling())
return rolling().entityAspect.entityState.isDetached();
});
エンティティはdetached
、(たとえば) 最初に追加され、その後 (すぐに) キャンセルされたときです。
基本的なシナリオ:
- (1) 新しい「ローリング」を作成する
- >> entityState は「追加済み」です
- (2) 作成操作のキャンセル (datacontext.cancelChanges)
- >> entityState は 'Detached' です
問題:計算されたノックアウト オブザーバブルからの値を取得しようとすると、値entityState.isDetached()
が動的ではないようです。前の基本的なシナリオから、ステップ 1 の後、ko.computedisDetached()
は false です (Added であるため)。ステップ 2 の後、ko.computed はまだ false ですが、true になるはずです。
次のように値を明示的に取得すると機能します。
if (rolling().entityAspect.entityState.isDetached())
...
私の ko.computed が動的ではない理由は何ですか?
ありがとう。