【发布时间】:2014-01-21 16:11:38
【问题描述】:
我正在使用 Knockout-Validation 来检查用户输入的某些字段是否有效。我正在扩展一个微风实体的属性来做到这一点。以下是我的扩展:
var employeeInitializer = function (employee) {
employee.FirstName = ko.observable().extend({ minLength: 2, required: true });
employee.LastName = ko.observable().extend({ minLength: 2, required: true });
employee.TargetRate = ko.observable().extend({ min: 0, required: true });
var validation = ko.validatedObservable({
firstName: employee.FirstName,
lastName: employee.LastName,
targetRate: employee.TargetRate
});
employee.isValid = ko.computed(function () { return validation.isValid() });
}
manager.metadataStore.registerEntityTypeCtor("Employee", null, employeeInitializer);
现在,当我对这三个字段中的任何一个进行更改时,都不会跟踪更改。如果用户正在编辑一个员工,但决定取消他们的编辑,那么我应该能够在视图模型中调用下面的行。
self.employee.entityAspect.rejectChanges();
但是,entityAspect 没有跟踪任何更改,即使应该有。如果我从属性中删除扩展名,那么一切正常。任何想法为什么会发生这种情况?
【问题讨论】:
标签: javascript knockout.js breeze knockout-validation