我有以下场景 - 我有一个属性,它有一个触发验证器的扩展。同样的属性也是依赖/计算 observable 的一部分。我需要在验证器扩展触发之前首先运行计算的 observable,因为它更新了验证器所需的一些值。但是,验证器总是首先触发。
在我的模型中 -
self.selected = ko.observable(false);
self.selected.extend({ checkVal: { viewModel: self } });
在我计算出的 observable 中——
self.mySelectedComputed = ko.computed({
read: function () {
if self.selected()...//I do some updates here
}
});
在我的验证器中 -
ko.validation.rules['checkVal'] = {
validator: function (val, parameter) {
var isSelected = parameter.viewModel.selected();
if (isSelected) {
//some other checks here based on the values updated by the computed observable
return false;
}
return true;
},
message: "Invalid.",
decorateInputElement: true
};