テキスト入力に関連付けられている別のオブザーバブルの値に依存するcomputedObservableがあります。そのようにhasValidAlmUrl
、computedObservable はどこにありますか:
<input type="text" data-bind="value: selectedArchive().almUrl" />
<button type="button" data-bind="enable: hasValidAlmUrl">Test</button>
私のノックアウト ビュー モデルは次のようになります。
function ArchiveViewModel() {
var self = this;
self.selectedArchive = ko.observable(new ArchiveData());
self.hasValidAlmUrl = ko.computed(function () {
var almUrl = self.selectedArchive().almUrl();
if (typeof (almUrl) == 'undefined') return false;
return almUrl.length > 0;
}, self);
...
};
ComputerObservableはhasValidAlmUrl
現在正しく動作しますが<input>
、フォーカスが<input>
変更されたときではなく、キーダウン イベントで更新する必要があります。valueUpdate: 'afterkeydown'
に aを追加することで、これを機能させることができます<input>
。
私が気に入らないのは、これらの要素がモーダルになっていることです。モーダル オーバーレイの背後には、入力されたモーダル内のエンティティが含まれるエンティティのリストがあります。を に設定する<input>
とvalueUpdate: 'afterkeydown'
、入力の値が変化するにつれてモーダルの背後にあるグリッドが変化するのがわかります。これは見栄えが悪いと思います。
依存しているオブザーバブルのキーダウンで計算されたオブザーバブルの更新を行う方法はありますが、キーダウンで依存するオブザーバブルの変更はありませんか?