मुझे आश्चर्य है कि Angular2 में इंटरफेस इंजेक्षन करने का कोई उचित तरीका है या नहीं? (नीचे सीएफ)क्या कोणीय 2 के साथ इंटरफेस इंजेक्ट करना संभव है?
मुझे लगता है कि यह इंटरफ़ेस पर अनुपलब्ध @ इंजेक्टेबल() सजावट से संबंधित है, लेकिन ऐसा लगता है कि इसकी अनुमति नहीं है।
सम्मान।
जब CoursesServiceInterface एक अंतरफलक के रूप में लागू किया जाता है, टाइपप्रति संकलक शिकायत "CoursesServiceInterface नाम नहीं मिल सकता है":
import {CoursesServiceInterface} from './CoursesService.interface';
import {CoursesService} from './CoursesService.service';
import {CoursesServiceMock} from './CoursesServiceMock.service';
bootstrap(AppComponent, [
ROUTER_PROVIDERS,
GlobalService,
provide(CoursesServiceInterface, { useClass: CoursesServiceMock })
]);
लेकिन एक अंतरफलक के रूप CoursesServiceInterface साथ:
import {Injectable} from 'angular2/core';
import {Course} from './Course.class';
//@Injectable()
export interface CoursesServiceInterface {
getAllCourses(): Promise<Course[]>;//{ return null; };
getCourse(id: number): Promise<Course>;// { return null; };
remove(id: number): Promise<{}>;// { return null; };
}
जब सेवा एक वर्ग है, टाइपस्क्रिप्ट कंपाइलर अब शिकायत नहीं करता है:
import {Injectable} from 'angular2/core';
import {Course} from './Course.class';
@Injectable()
export class CoursesServiceInterface {
getAllCourses() : Promise<Course[]> { return null; };
getCourse(id: number) :Promise<Course> { return null; };
remove (id: number) : Promise<{}> { return null; };
}
useClass: था कि मैं क्या याद आ रही थी ... बहुत बुरा है कि सरकारी ट्यूटोरियल – Aligned
https://angular.io/docs/ts/ में नहीं है नवीनतम/कुकबुक/निर्भरता-इंजेक्शन.html #! # उपयोग करें –