उपयोग providers या viewProviders सेवा घटक को "प्रदान करने के लिए"
@Component({
// ...
providers: [TodoService]
})
class TodoComponent() {
constructor(todoService: TodoService) {
this.todoService = todoService;
}
}
या Inject
पैरामीटर डेकोरेटर का उपयोग कर।
@Component({
// ...
providers: [TodoService]
})
class TodoComponent() {
constructor(@Inject(TodoService) todoService) {
this.todoService = todoService;
}
}
पैरामीटर सजावटी ES2016 का हिस्सा नहीं हैं (आप इसे टाइपस्क्रिप्ट विशिष्ट के रूप में मान सकते हैं)। लेकिन वे added to the standard later हो सकते हैं)।
तुम सच में ES6/ES7 उपयोग करना चाहते हैं, parameters
के लिए स्थिर गेटर का उपयोग करें:
@Component({
// ...
providers: [TodoService]
})
class TodoComponent() {
static get parameters() {
return [[TodoService]]; // you can also return just [TodoService]
}
constructor(todoService) {
this.todoService = todoService;
}
}
इसके अलावा, मैं आप की सिफारिश this article पढ़ने के लिए बेहतर angular2 निर्भरता इंजेक्शन को समझने के लिए।
तो उन दोनों कार्यान्वयन टाइपस्क्रिप्ट विशिष्ट हैं? ES2016 सजावट का उपयोग करने का कोई तरीका नहीं है (जिसमें पैरामीटर सजावट शामिल नहीं है, लिंक के लिए धन्यवाद)? – iksose
@iksose मैंने ES6/ES7 – alexpods
परफेक्ट के लिए उदाहरण जोड़ा है! अद्भुत काम करता है, धन्यवाद @alexpods – iksose