मेरे पास कस्टम सत्यापनकर्ता बनाने के लिए एक कस्टम वर्ग है। फॉर्मग्रुप में उस सत्यापनकर्ता का उपयोग करने के लिए मुझे यह पसंद है:

@Injectable({ providedIn: 'root' })
export class MatchPassword {

}

दूसरे वर्ग में

import { MatchPassword } from '../validators/match-password';

export class SignupComponent implements OnInit {
  authForm = new FormGroup(
    {
      username: new FormControl('')
    },
    {
      validators: [this.match.validate],
    }
  );

  constructor(private match: MatchPassword) {}

  ngOnInit(): void {}
}

मैं लाइक का उपयोग क्यों नहीं करता

कॉन्स्ट ऑब्जेक्ट = नया मैचपासवर्ड ();

एक उदाहरण बनाने के लिए?

1
hakan 11 अप्रैल 2020, 01:29

1 उत्तर

सबसे बढ़िया उत्तर

आपको एक उदाहरण बनाने की आवश्यकता नहीं है, आपको उस उदाहरण का पुन: उपयोग करने की आवश्यकता है जिस पर आपका घटक निर्भर करता है, और यह कि स्टार्टअप पर बनाया गया ढांचा।

आप new का उपयोग करके घटकों के बीच जानकारी साझा नहीं कर सके, इसके बजाय, निर्भरता इंजेक्शन के लिए धन्यवाद, आप ऐसा कुछ कर सकते हैं:

@Injectable({provideIn: 'root'})
export class MyService() {
  object: T = null;
  save(object: T) {
    this.object = object;
  }

  retrieve(): T {
    return this.object;
  }
}

और आप एक घटक में save और दूसरे घटक में retrieve का उपयोग कर सकते हैं, युग्मन को सीमित कर सकते हैं।

new का उपयोग करने के बजाय, आपको MyService.object के दो उदाहरण मिलेंगे। इस मामले में, सेवाएं सिंगलटन के समान हैं, लेकिन वे सिंगलटन नहीं हैं क्योंकि वे ढांचे द्वारा प्रबंधित किए जाते हैं, न कि डेवलपर द्वारा।

2
Cristian Traìna 10 अप्रैल 2020, 22:34