angular सेवा के लिए कोणीय 2 इंटरफ़ेस




service interface (2)

हाँ, आप ऐसा कर सकते हैं जैसे सेफ़ Ümit Oray ऊपर दिए उत्तर। लेकिन जैसा कि मैं समझता हूं, आप दो प्रकार के ऑब्जेक्ट को सूची में फ़िल्टर करने का प्रयास कर रहे हैं और आप दोनों का उपयोग करना चाहते हैं। तो आप एक ऐसी सेवा क्यों नहीं लिखते हैं जिसमें दो अंतर खोज पद्धतियां हैं या आप उस विधि को लिख सकते हैं जो दोनों तरह के ऑब्जेक्ट में खोज करते हैं।

जैसा आप पूछते हैं, आप ऑब्जेक्ट के प्रकार की जांच करने instance of लिए instance of उपयोग कर सकते हैं। उसके बाद, Pipe को ngIf साथ संयोजन करें ngIf आप क्या चाहते हो।

https://angular.io/docs/ts/latest/guide/pipes.html https://angular.io/docs/ts/latest/api/common/index/NgIf-directive.html

https://code.i-harness.com

मैं एक खोज घटक को विकसित करना चाहता हूं यहां उपयोग केस है:

  1. यह घटक खोज के शब्दों के पैरामीटर्स के साथ एक सेवा कॉल करता है।
  2. सेवा एपीआई एंडपॉइंट को कॉल करती है और परिणामी वस्तुओं को संग्रह के रूप में देता है।
  3. घटक टेम्पलेट में परिणाम प्रदर्शित करता है।

मैं केवल एक खोज घटक लिखना चाहता हूं जो मामले के आधार पर विभिन्न सेवा को कॉल करने में सक्षम है। कल्पना कीजिए कि मुझे दो सेवाएं हैं:

  1. SearchInMaleEmployeeService
  2. SearchInFemaleEmployeeService

इन दोनों सेवाओं से कर्मचारी की एक सूची लौटाते हुए खोज फ़ंक्शन को लागू किया जाता है। मैं अपने घटक को यह बताना चाहता हूं कि मामले के आधार पर कौन सी सेवा है। सी # में, हम इंटरफेस का उपयोग करने के लिए घटक कन्स्ट्रक्टर को बता सकते हैं।

मैं इसे Angular2 में कैसे कर सकता हूं?

बोनस प्रश्न: सेवा से लौटा वस्तु के प्रकार के आधार पर खोज परिणामों को प्रस्तुत करने के लिए मैं किस प्रकार अपने टेम्पलेट से उपयोग कर सकता हूं?


आप निर्भरता इंजेक्शन के माध्यम से इसे प्राप्त कर सकते हैं।

जैसा आपने कहा था, उसी ISearchService इंटरफ़ेस को लागू करने वाली दो अलग-अलग सेवाएं बनाएं।

SearchComponent का उपयोग करते समय, मॉड्यूल से ServiceComponent तक उचित सेवा वर्ग प्रदान करें।

आपका SearchComponent ऐसा दिखेगा

  constructor(private searchService: ISearchService) {}

और विभिन्न स्थानों पर SearchComponent का उपयोग करते समय सेवा उदाहरण प्रदान करते हैं:

providers: [
  { provide: ISearchService, useValue: SearchInMaleEmployeeService}
]

या

providers: [
  { provide: ISearchService, useValue: SearchInFemaleEmployeeService}
]

Angular2 निर्भरता इंजेक्शन के बारे में अधिक जानकारी यहां

अद्यतन करें:

जैसा कि बेन ने बताया

प्रदान करें कथन के रूप में कोडित किए जाने की आवश्यकता है

provide('ISearchService', {useClass: SearchInMaleEmployeeService})

और घटक को कक्षा में शामिल करने के लिए:

constructor(@Inject('ISearchService') private searchService:ISearchService) {}




interface