में एक कस्टम सत्यापनकर्ता में एक सेवा इंजेक्ट करें मैं एक वैध सत्यापनकर्ता में एक सेवा का उपयोग करने की कोशिश करता हूं यह जांचने के लिए कि कोई उपयोगकर्ता नाम पहले से मौजूद है या नहीं।Angular2
import {Component} from 'angular2/core';
import {
Control,
ControlGroup,
FormBuilder
} from "angular2/common";
import {CharacterService} from "./character-service";
@Component({
selector: 'register-character-form',
template: `
<h2 class="ui header">A new adventurer is coming...</h2>
<form (ngSubmit)="register()" [ngFormModel]="characterForm" class="ui form">
<div class="field">
<label>Nom</label>
<input ngControl="name">
</div>
<button type="submit" class="ui button">Enter in the adventure</button>
</form>
`,
providers: [CharacterService]
})
export class RegisterCharacterFormCmp {
characterForm: ControlGroup;
name: Control;
constructor(private _characterService: CharacterService, fb: FormBuilder) {
this.name = fb.control('', this.characterNameValidator);
this.characterForm = fb.group({
name: this.name
});
}
register(): void {
//TODO: To implement
}
// Not works, this binds the control
characterNameValidator(control: Control) {
return this._characterService.isCharacterNameAlreadyExists(control.value) ? {nameCharacterAlreadyExistsError: true} : null;
}
}
यह काम नहीं करता है। वर्णनाम वैलिडेटर में, 'यह' नियंत्रण का संदर्भ देता है, न कि मेरी कक्षा। सेवा अपरिभाषित है। मैं वैधता में अपनी सेवा का उपयोग कैसे कर सकता हूं?
अधिक वैश्विक स्तर पर, मैं एक कस्टम सत्यापनकर्ता में तर्क कैसे पारित कर सकता हूं?
यह पूरी तरह से काम करता है, धन्यवाद। – Kelem
आप इस ऑब्जेक्ट को सही ऑब्जेक्ट पर रखने के लिए तीर फ़ंक्शन का भी उपयोग कर सकते हैं। – toskv
@SnareChops - क्या आप कृपया लिंक कर सकते हैं कि यह कहां है 'बाइंड' दस्तावेज है? मुझे कुछ भी उपयोगी नहीं लग रहा है। –