使用计算的observable立即触发下拉列表的敲除验证

时间:2016-07-11 07:31:46

标签: javascript knockout.js knockout-validation

我有一个与Knockout Validation evaluates immediately on load非常相似的问题,只有那里提供的解决方案对我不起作用,因为我无法使用""来初始化observable。因为它是一个带有逻辑的计算可观察量。

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

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 });

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

1 个答案:

答案 0 :(得分:0)

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

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