لما يستخدم providedIn في Injectable decorator عند إنشاء الخدمات في Angular 6؟
مرحباً بالجميع! بدأت بتعلم Angular 6 و TypeScript، ولاحظت عند إنشاء service عبر CLI شيئاً كهذا:
```typescript
@Injectable({
providedIn: 'root'
})
export class MyService {
constructor() { }
}
```
سابقاً، في Angular 5، كنت أكتب `@Injectable()` بدون أي parameters، ثم أسجل الـ service في module في قسم `providers`. والآن CLI يولد هذا `providedIn: 'root'`. أنا مشوش قليلاً.
هكذا كنت أفعل سابقاً:
```typescript
// my.service.ts
@Injectable()
export class MyService { }
// app.module.ts
@NgModule({
providers: [MyService]
})
export class AppModule { }
}
والآن الطريقة الجديدة:
```typescript
// my.service.ts
@Injectable({
providedIn: 'root'
})
export class MyService { }
```
الأسئلة:
1. ما الذي يفعله هذا بالضبط؟