アムに注入することなく、サービスを利用して、私はangular2で静的関数を持つクラスを持っていると私は、私は、静的なクラスを持っているangular2する新しいangular2
ある静的な機能の一つにhttpリクエストを実装したいと思いますそれは、フォーム検証、私は静的関数でHTTPを使用する方法上記の私の場合はValidationService
constructor(private _http:Http){}
static passwordValidator(control) {
if(control.value != undefined){
if (!control.value.match(/^(?=.*[0-9])[[email protected]#$%^&*]{6,100}$/)) {
return { 'invalidPassword': true };
}
}
}
static emailValidator(){
return this._http. //this returns an error i would like to
//query server to see if email exists
}
上
FORM VALIDTION
this.userform = this._formbuilder.group({
first_name: [this.user.first_name, Validators.required],
last_name: ['', Validators.required],
username: ['', Validators.compose(
[
Validators.required,Validators.minLength(5)
]
)],
password: ['',Validators.compose([
Validators.required,ValidationService.passwordValidator
])],
email: ['', Validators.compose([
Validators.required,ValidationService.emailValidator
])],
role: ['', Validators.required],
})
を管理しますおそらく変数
に割り当てることによって
このlet http...
はHereを使用しているが、それは私に失敗しwhic RC5にあった
'私はthat' 1 – Xymanek
素敵な回答smnbbrvのようなものをサポートする必要がある場合、私は泣くだろう開発者として、IVEはサービスであるためにバリデータを変更することを決めたが、他がある場合はその良いが探求しますあとで便利になるかもしれないオプション –
私はまた、時にはこれらのことを知ることが有用なので、誰かを助けてくれることを願っています。一週間前に私は同様の問題を抱えていました。単純なクラスにサービスインスタンスを渡し、それを直接クラスコンストラクタに渡して(最初の回避策)、それを達成するのに役立ちました。 2番目の回避策は、実際にはサービスの単体テストに非常に多く使用されるため、これも役立ちます。 – smnbbrv