我有一个 computedObservable,它取决于另一个与文本输入相关的 observable 的值。像这样,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);
...
};
computedObservable目前hasValidAlmUrl
可以正常工作,但我希望它在 keydown 事件上更新,<input>
而不是在焦点<input>
更改时更新。我可以通过valueUpdate: 'afterkeydown'
在<input>
.
我不喜欢的是这些元素是模态的。模态叠加层后面是一个实体列表,填充模态中的实体是其中的一部分。当我将 设置为<input>
时valueUpdate: 'afterkeydown'
,您可以看到模式后面的网格随着输入值的变化而变化,我认为这看起来很糟糕。
有没有办法对它所依赖的可观察对象的 keydown 进行计算的可观察更新,但在 keydown 上没有相关的可观察更改?