【发布时间】:2013-03-18 22:22:06
【问题描述】:
这与我提出的另一个问题非常相似,但不妨提出不同的问题,并且可能会被不同的受众发现有用。
我有一个用于敲除验证的自定义规则:
ko.validation.rules["sameAs"] = {
validator: function (val, otherObservable) {
return val === otherObservable();
},
message: "Value should be same as {0}, but differs"
};
现在在原始 javascript 中,这可以正常工作,因为用法如下所示:
function SomeObject() {
this.Email = ko.observable().extend({ required: true, email: true });
this.ConfirmationEmail = ko.observable().extend({ required: true, email: true, sameAs: this.Email });
}
但是,如果我尝试写这个,现在在 Typescript 领域:
class SomeObject {
public Email = ko.observable().extend({ required: true, email: true });
public ConfirmationEmail = ko.observable().extend({ required: true, email: true, sameAs: this.Email });
}
我现在得到错误:
不能在类主体的初始化程序中引用关键字“this”, 或在超级构造函数调用中
这是有道理的,但是我不确定如何做我最初会做的事情,除非我尝试将它破解到构造函数或其他东西中,这使得我的类现在看起来有点可怕。
【问题讨论】:
标签: javascript knockout.js this typescript knockout-validation