立即使用计算的可观察触发器对下拉列表进行挖空验证

Knockout validation on a dropdown using a computed observable triggers immediately

本文关键字:下拉列表 验证 触发器 观察 计算      更新时间:2023-09-26

我有一个与 Knockout Validation 非常相似的问题,仅在加载时立即进行评估,那里提供的解决方案对我不起作用,因为我无法使用"初始化可观察量,因为它是带有逻辑的计算可观察量。

我还尝试将其绑定到下拉列表中:

value: computedObservable()

或:

value: function(){computedObservable}

或:

value: function(){computedObservable}()

而不是:

value: computedObservable

可观察量本身定义为:

viewModel.computedObservable = ko.pureComputed({
    write: function (value) {
        viewModel.observable(value);
    },
    read: function () {
        return viewModel.isObservableComputed() ? viewModel.existingModel().observable() : viewModel.observable();
    }
}).extend({ required: true });

如何防止加载时验证(显示在引导模式中)但仍在保存时触发验证?

我当前的解决方案是使用条件验证并最初将其设置为 false 并检查 onlyIf 中的另一个(必填)字段,因此仅当另一个字段有值时,此字段才成为必填字段。

更好的解决方案仍然非常受欢迎。