اشتراکها
- این خطا یعنی سرویس IConfigurationRoot را به سیستم تزریق وابستگیها معرفی نکردید.
- تنظیمات اولیهی EF Core از زمان نگارش 2 آن اندکی تغییر کرده؛ خلاصهی نهایی و به روز شدهی آن در پروژهی DNTIdentity و یا پروژهی «اعتبارسنجی مبتنی بر JWT در ASP.NET Core 2.0 بدون استفاده از سیستم Identity» موجود است (هر دو پروژه به آخرین نگارش SDK، به روز رسانی شدهاند).
نظرات مطالب
AngularJS #1
These files are parsed by our docs parser (nodejs script), source can be found here: https://github.com/angular/angular.js/tree/master/docs/src It is combined together with docs parsed from the source and result is html, served at docs.angularjs.org
اشتراکها
کتابخانه a2d3
A set of composable and extensible Angular 2 directives for building SVGs with D3 declaritively. This library provides functionality for basic charts out of the box, but it can be easily extended to support building declarative syntaxes for just about any SVG generated by D3. Demo
اشتراکها
آفیس 2016 برای مک
مراحل ارتقاء پروژههای Angular از نگارش 6 به 7 آن به شرح زیر هستند:
1- به روز رسانی Angular CLI
ابتدا نیاز است نگارش قبلی را حذف و سپس نگارش جدید را نصب کنید:
npm uninstall -g @angular/cli npm cache verify # if npm version is < 5 then use `npm cache clean` npm install -g @angular/cli@latest
البته Angular 7 پشتیبانی از Node 10 را اضافه کرده است (بیشتر؛ دانلود Node). بنابراین پیش از اجرای دستورات فوق بهتر است NodeJS خود را نیز به روز کنید:
npm i -g npm
2- به روز رسانی RxJS (اگر در نگارش 6 آنرا تکمیل نکردهاید)
1-تعویض کردن HttpModule با HttpClientModule و سرویس Http با سرویس HttpClient 2-حذف کردن ویژگیهای منسوخ شده از RxJS 6 با اجرای دستور زیر:
npm install -g rxjs-tslint rxjs-5-to-6-migrate -p src/tsconfig.app.json
3-حذف rxjs-compat بعد از بروزرسانی RxJS 6
اطلاعات بیشتر: «ارتقاء به Angular 6: بررسی تغییرات RxJS»
3- به روز رسانی TypeScript
Angular 7 از تایپ اسکریپت 3.1 استفاده میکند (بیشتر). به همین جهت نیاز است وابستگیهای سراسری سیستم خود را مانند TypeScript، پس از نصب CLI جدید، به نحو زیر به روز کنید:
npm update -g
برای بهروز رسانی به نسخه 7 (core framework و CLI)، دستورات زیر را اجرا کنید:
ng update @angular/cli ng update @angular/core ng update rxjs
و اگر از Angular Material نیز استفاده میکنید، نیاز به اجرای دستور زیر را نیز خواهید داشت:
ng update @angular/material
و یا به صورت خلاصه دستور زیر تمام مراحل فوق را به صورت یکجا انجام میدهد:
ng update --all --force
اگر شما از Service worker مربوط به Angular استفاده میکنید، بجای versionedFiles از files استفاده کنید. رفتار همان است و تغییر نکردهاست.
6- به روز رسانی وابستگیهای ثالث پروژه
برای به روز رسانی سایر وابستگیهای پروژه، میتوان از بستهی npm-check-updates استفاده کرد:
npm install npm-check-updates -g ncu -u npm install
با تغییر کلاس سرویس AppConfigService به شکل زیر :
و تغییر ماژول CoreModule به شکل زیر :
با خطای زیر مواجه شدم لطفا راهنمایی بفرمائید :
import { HttpClient } from "@angular/common/http"; import { Injectable } from "@angular/core"; @Injectable() export class AppConfigService { private config: IAppConfig; constructor(private http: HttpClient) { } loadClientConfig(): Promise<any> { return this.http.get<IAppConfig>("assets/client-config.json") .toPromise() .then(config => { this.config = config; console.log("Config", this.config); }) .catch(err => { return Promise.reject(err); }); } get configuration(): IAppConfig { if (!this.config) { throw new Error("Attempted to access configuration property before configuration data was loaded."); } return this.config; } } export interface IAppConfig { apiEndpoint: string; loginPath: string; logoutPath: string; refreshTokenPath: string; accessTokenObjectKey: string; refreshTokenObjectKey: string; adminRoleName: string; }
و تغییر ماژول CoreModule به شکل زیر :
import { NgModule, Optional, SkipSelf, APP_INITIALIZER } from "@angular/core"; import { CommonModule } from "@angular/common"; import { RouterModule } from "@angular/router"; import { HTTP_INTERCEPTORS } from "@angular/common/http"; // import RxJs needed operators only once import "./services/rxjs-operators"; import { HeaderComponent } from "./component/header/header.component"; import { AuthGuard } from "./services/auth.guard"; import { AuthInterceptor } from "./services/auth.interceptor"; import { AuthService } from "./services/auth.service"; import { AppConfigService } from "./services/app-config.service"; import { BrowserStorageService } from "./services/browser-storage.service"; @NgModule({ imports: [CommonModule, RouterModule], exports: [ // components that are used in app.component.ts will be listed here. HeaderComponent ], declarations: [ // components that are used in app.component.ts will be listed here. HeaderComponent ], providers: [ // global singleton services of the whole app will be listed here. BrowserStorageService, AppConfigService, AuthService, AuthGuard, { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true }, { provide: APP_INITIALIZER, useFactory: (config: AppConfigService) => () => config.loadClientConfig(), deps: [AppConfigService ], multi: true } ] }) export class CoreModule { constructor( @Optional() @SkipSelf() core: CoreModule) { if (core) { throw new Error("CoreModule should be imported ONLY in AppModule."); } } }
Error: Provider parse errors:
Cannot instantiate cyclic dependency! ApplicationRef ("[ERROR ->]"): in NgModule AppModule in ./AppModule@-1:-1
Cannot instantiate cyclic dependency! ApplicationRef ("[ERROR ->]"): in NgModule AppModule in ./AppModule@-1:-1
کمی بالاتر با 2 مثال توضیح دادم: «روش ارتقاء به EF Core 2.0»