Ng-lazyload-image: LazyLoadImageHooks에 λŒ€ν•œ 잘λͺ»λœ κ³΅κΈ‰μžμ— 였λ₯˜κ°€ μžˆμŠ΅λ‹ˆλ‹€. useClassλŠ” μ •μ˜ ν•΄μ œ ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2020λ…„ 06μ›” 03일  Β·  33μ½”λ©˜νŠΈ  Β·  좜처: tjoskar/ng-lazyload-image

Angular9 ν”„λ‘œμ νŠΈμ—μ„œμ΄ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

ERROR in Invalid provider for LazyLoadImageHooks. useClass cannot be undefined.
           Usually it happens when:
           1. There's a circular dependency (might be caused by using index.ts (barrel) files).
           2. Class was used before it was declared. Use forwardRef in this case.
bug help wanted

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

이전 λ²„μ „μœΌλ‘œ λŒμ•„κ°€μ„œ 컴파일 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
npm install [email protected]
Ionic 5.0.7 / Angular 8.2.14λ₯Ό μ‚¬μš© μ€‘μž…λ‹ˆλ‹€.

λͺ¨λ“  33 λŒ“κΈ€

여기에 같은 문제

λ‚˜λŠ” 같은 λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€.
λˆ„κ΅¬λ“ μ§€ λ„μšΈ 수 μžˆμŠ΅λ‹ˆκΉŒ?

λ‚˜λ„ 같은 λ¬Έμ œκ°€ 생겼어 .... 도와 쀘

음 ... μˆ˜μ •ν•˜κΈ° μ „κΉŒμ§€ 버전 7.1.0으둜 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš©μ€‘μΈ ng-lazyload-image 버전 ( npm ls ng-lazyload-image μ‹€ν–‰ν•˜μ—¬ 확인)

λΉŒλ“œ μ‹œκ°„ λ˜λŠ” λΈŒλΌμš°μ € μ½˜μ†”μ—μ„œμ΄ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆκΉŒ?

이 문제둜 μž‘μ€ μ €μž₯μ†Œλ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆκΉŒ? https://github.com/tjoskar/ng-lazyload-image/blob/master/example/package.json 예제 ν΄λ”μ—μ„œ Angular 9λ₯Ό μ‚¬μš©ν•˜κ³  μžˆλŠ”λ° κ±°κΈ°μ—μ„œ 문제λ₯Ό λ³Ό 수 μ—†μŠ΅λ‹ˆκΉŒ? 이 μ½”λ“œ μƒŒλ“œ λ°•μŠ€μ—λŠ” ν¬ν•¨λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ : https://codesandbox.io/s/lazy-load-image-with-httpclient-to538?file=/src/app/app.module.ts (예 :)

@tjoskar 이 였λ₯˜λŠ” λΉŒλ“œμ‹œ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

였λ₯˜ : LazyLoadImageHooks에 λŒ€ν•œ 잘λͺ»λœ κ³΅κΈ‰μžμž…λ‹ˆλ‹€. useClassλŠ” μ •μ˜ ν•΄μ œ ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
일반적으둜 λ‹€μŒκ³Ό 같은 κ²½μš°μ— λ°œμƒν•©λ‹ˆλ‹€.
1. μˆœν™˜ 쒅속성이 μžˆμŠ΅λ‹ˆλ‹€ (index.ts (배럴) νŒŒμΌμ„ μ‚¬μš©ν•˜μ—¬ λ°œμƒν•  수 있음).
2. ν΄λž˜μŠ€κ°€ μ„ μ–Έλ˜κΈ° 전에 μ‚¬μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이 경우 forwardRefλ₯Ό μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.

μ²˜λ¦¬λ˜μ§€ μ•Šμ€ μ˜ˆμ™Έκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. LazyLoadImageHooks에 λŒ€ν•œ 잘λͺ»λœ κ³΅κΈ‰μžμž…λ‹ˆλ‹€. useClassλŠ” μ •μ˜ ν•΄μ œ ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
일반적으둜 λ‹€μŒκ³Ό 같은 κ²½μš°μ— λ°œμƒν•©λ‹ˆλ‹€.
1. μˆœν™˜ 쒅속성이 μžˆμŠ΅λ‹ˆλ‹€ (index.ts (배럴) νŒŒμΌμ„ μ‚¬μš©ν•˜μ—¬ λ°œμƒν•  수 있음).
2. ν΄λž˜μŠ€κ°€ μ„ μ–Έλ˜κΈ° 전에 μ‚¬μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이 경우 forwardRefλ₯Ό μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.

각도 라이브러리λ₯Ό λ§Œλ“œλŠ” λ™μ•ˆμ΄ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.
버전 7μ—μ„œλŠ” λ°œμƒν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 이것을 μž¬ν˜„ ν•  수 μ—†μŠ΅λ‹ˆλ‹€. 방금 μƒˆλ‘œμš΄ μ•΅κ·€λŸ¬ 9 μ•± (9.1.9)을 λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

❯ ng new my-app

❯ npm ls @angular/core
[email protected]
└── @angular/[email protected]

그런 λ‹€μŒ λ‹€μŒκ³Ό 같이 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€. https://github.com/tjoskar/ng-lazyload-image-bugs/commit/7fe50bd1631a20e7bcfed82f2a34acaeb6b50533

그리고 아무 λ¬Έμ œμ—†μ΄ npm run build ( ng build )λ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.

이 문제λ₯Ό ν•΄κ²°ν•˜λ €λ©΄ κ·€ν•˜μ˜ 도움이 ν•„μš”ν•©λ‹ˆλ‹€.

  1. 고유 ν•œ μ‚¬μš©μž 지정 후크λ₯Ό μƒμ„±ν•©λ‹ˆκΉŒ? κ·Έλ ‡λ‹€λ©΄ 후크에 쒅속성이 μžˆμŠ΅λ‹ˆκΉŒ?
  2. μΆ”κ°€ λ§ˆμ‹­μ‹œμ˜€ LazyLoadImageModule λ‹€μ–‘ν•œμ—μ„œ NgModule ?
  3. 이 였λ₯˜λ₯Ό μž¬ν˜„ν•˜λŠ” μ €μž₯μ†Œλ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆκΉŒ? λ˜λŠ” 적어도 당신이 그것을 μ‚¬μš©ν•˜λŠ” 방법에 λŒ€ν•œ μ½”λ“œ 슀 λ‹ˆνŽ«μ„ μ œκ³΅ν•˜μ‹­μ‹œμ˜€.

μ‘μš© ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€μ§€ 말고 라이브러리λ₯Ό λ§Œλ“œμ‹­μ‹œμ˜€.
이 사양 μ‚¬μš©
https://angular.io/guide/creating-libraries
λͺ¨λ“ˆμ„ κ°€μ Έ μ™€μ„œ npmμ—μ„œ ν•΄μ œν•˜μ‹­μ‹œμ˜€.

@ emanuele-galeotti, λ‚˜λŠ” λ”°λ₯΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ng-lazyload-image λŠ” 라이브러리이며 npm에 κ²Œμ‹œλ©λ‹ˆλ‹€. μ‘μš© ν”„λ‘œκ·Έλž¨μ—μ„œ ng-lazyload-image 을 μ‚¬μš©ν•˜κ³  μžˆλ‹€λŠ” 인상을 λ°›μ•˜μœΌλ―€λ‘œ μ‘μš© ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€κ³  라이브러리 ( ng-lazyload-image )λ₯Ό κ°€μ Έ μ™”μŠ΅λ‹ˆλ‹€.

라이브러리λ₯Ό λ§Œλ“€κ³  있으며 ng-lazyload-image λ₯Ό μ’…μ†μ„±μœΌλ‘œ μ‚¬μš©ν•˜κ³  μ‹Άλ‹€κ³  λ§μ”€ν•˜μ‹­λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ 링크 ν•œ κ°€μ΄λ“œμ— 따라 μƒˆ 라이브러리λ₯Ό λ§Œλ“€κ³  μ½”λ“œλ₯Ό μƒˆλ‘œ λ§Œλ“  라이브러리둜 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•΄μ•Όν•œλ‹€κ³  μ œμ•ˆν•©λ‹ˆκΉŒ?

μœ„μ˜ 였λ₯˜λŠ” λ‹€μŒκ³Ό 같은 κ²½μš°μ— λ°œμƒν•©λ‹ˆλ‹€.

  1. UI 용 라이브러리λ₯Ό λ§Œλ“­λ‹ˆλ‹€.
  2. LazyLoadImageModule κ°€μ Έ 였기
  3. λΉŒλ“œλ₯Ό ν•œ λ‹€μŒ npmμ—μ„œ λ¦΄λ¦¬μŠ€ν•©λ‹ˆλ‹€.

이 μž‘μ—…μ„ μš”μ²­ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?
ν”„λ‘œμ νŠΈκ°€ λΉ„κ³΅κ°œμ΄κΈ° λ•Œλ¬Έμ— μ €μž₯μ†Œκ°€ μ—†μŠ΅λ‹ˆλ‹€.

라이브러리λ₯Ό λΉŒλ“œ ν•  λ•Œ λ˜λŠ” 라이브러리λ₯Ό μ‚¬μš©ν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λΉŒλ“œ ν•  λ•Œ λΉŒλ“œκ°€ μ‹€νŒ¨ν•©λ‹ˆκΉŒ?

이제 λ‹€μŒμ„ μˆ˜ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

❯ ng new my-workspace --create-application=false
CREATE my-workspace/README.md (1028 bytes)
CREATE my-workspace/.editorconfig (274 bytes)
CREATE my-workspace/.gitignore (631 bytes)
CREATE my-workspace/angular.json (136 bytes)
CREATE my-workspace/package.json (1196 bytes)
CREATE my-workspace/tsconfig.json (489 bytes)
CREATE my-workspace/tslint.json (2933 bytes)
βœ” Packages installed successfully.

❯ ng generate library my-lib
CREATE projects/my-lib/README.md (986 bytes)
CREATE projects/my-lib/karma.conf.js (1022 bytes)
CREATE projects/my-lib/ng-package.json (155 bytes)
CREATE projects/my-lib/package.json (184 bytes)
CREATE projects/my-lib/tsconfig.lib.json (435 bytes)
CREATE projects/my-lib/tsconfig.lib.prod.json (97 bytes)
CREATE projects/my-lib/tsconfig.spec.json (246 bytes)
CREATE projects/my-lib/tslint.json (247 bytes)
CREATE projects/my-lib/src/public-api.ts (155 bytes)
CREATE projects/my-lib/src/test.ts (781 bytes)
CREATE projects/my-lib/src/lib/my-lib.module.ts (222 bytes)
CREATE projects/my-lib/src/lib/my-lib.component.spec.ts (622 bytes)
CREATE projects/my-lib/src/lib/my-lib.component.ts (264 bytes)
CREATE projects/my-lib/src/lib/my-lib.service.spec.ts (353 bytes)
CREATE projects/my-lib/src/lib/my-lib.service.ts (134 bytes)
UPDATE angular.json (1383 bytes)
UPDATE package.json (1360 bytes)
UPDATE tsconfig.json (588 bytes)
βœ” Packages installed successfully.

❯ cd projects/my-lib
❯ npm install ng-lazyload-image -D
+ [email protected]
added 1 package from 1 contributor and audited 1 package in 1.034s
found 0 vulnerabilities

# I made the following changes: https://github.com/tjoskar/ng-lazyload-image-bugs/commit/1bf60bcbf6133751c41f52cd3d837614dfb60bd0

❯ cd ../..
❯ ng build my-lib
Building Angular Package
******************************************************************************
It is not recommended to publish Ivy libraries to NPM repositories.
Read more here: https://v9.angular.io/guide/ivy#maintaining-library-compatibility
******************************************************************************

------------------------------------------------------------------------------
Building entry point 'my-lib'
------------------------------------------------------------------------------
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to FESM5
Bundling to UMD
WARNING: No name was provided for external module 'ng-lazyload-image' in output.globals – guessing 'ngLazyloadImage'
Minifying UMD bundle
Writing package metadata
Removing devDependencies section in package.json.
Built my-lib

------------------------------------------------------------------------------
Built Angular Package
 - from: ng-lazyload-image-bugs/463-invalid-provider-for-lazyLoadImageHook-libs/projects/my-lib
 - to:   ng-lazyload-image-bugs/463-invalid-provider-for-lazyLoadImageHook-libs/dist/my-lib
------------------------------------------------------------------------------

λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μžˆμŠ΅λ‹ˆλ‹€ : https://github.com/tjoskar/ng-lazyload-image-bugs/tree/master/463-invalid-provider-for-lazyLoadImageHook-libs

그리고 여기에 λ‚΄κ°€ λ³€κ²½ ν•œ λ‚΄μš©μž…λ‹ˆλ‹€ : https://github.com/tjoskar/ng-lazyload-image-bugs/commit/1bf60bcbf6133751c41f52cd3d837614dfb60bd0

ν”„λ‘œμ νŠΈκ°€ λΉ„κ³΅κ°œμ΄κ³  μ½”λ“œλ₯Ό 곡유 ν•  수 μ—†λŠ”μ§€ μ΄ν•΄ν•˜μ§€λ§Œ 였λ₯˜λ₯Ό μž¬ν˜„ ν•  μˆ˜μžˆλŠ” μž‘μ€ ν”„λ‘œμ νŠΈλ₯Ό λ§Œλ“€ 수 μžˆλ‹€λ©΄ 도움이 될 κ²ƒμž…λ‹ˆλ‹€.

라이브러리λ₯Ό λΉŒλ“œ ν•  λ•Œ μ½”λ“œλ₯Ό 곡유 ν•  μˆ˜μžˆλŠ” μ¦‰μ‹œ μ‹€νŒ¨ν•©λ‹ˆλ‹€.

λ‚˜λŠ” 같은 λ¬Έμ œκ°€ :(. λ‚˜λŠ” LAZY LOAD MODULEλ₯Ό μžμ‹ λͺ¨λ“ˆμ— μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.

Ionic 5, angular 9 μ‚¬μš©. μ œν’ˆμ— λΉŒλ“œλ₯Ό μ‹œλ„ν•˜λ©΄ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

같은 문제. ionic 5 및 andular 9둜 μ•± λΉŒλ“œλ₯Ό μ‹œλ„ν•˜μ‹­μ‹œμ˜€ ...

이전 λ²„μ „μœΌλ‘œ λŒμ•„κ°€μ„œ 컴파일 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
npm install [email protected]
Ionic 5.0.7 / Angular 8.2.14λ₯Ό μ‚¬μš© μ€‘μž…λ‹ˆλ‹€.

이전 λ²„μ „μœΌλ‘œ λŒμ•„κ°€μ„œ 컴파일 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
npm install [email protected]
Ionic 5.0.7 / Angular 8.2.14λ₯Ό μ‚¬μš© μ€‘μž…λ‹ˆλ‹€.

λμ–΄μš” .. κ°μ‚¬ν•©λ‹ˆλ‹€ ....

@ Davei234 잘 μž‘λ™ν•©λ‹ˆλ‹€.

λ‚˜λŠ” 이것을 μž¬ν˜„ ν•  수 μ—†κΈ° λ•Œλ¬Έμ— 이것을 μž¬ν˜„ν•˜λŠ” ν”„λ‘œμ νŠΈλ₯Ό λˆ„κ΅¬λ‚˜ λ§Œλ“€ 수 μžˆλ‹€λ©΄ 기쁠 κ²ƒμž…λ‹ˆλ‹€.
λ‚˜λŠ” 이것을 μž¬ν˜„ν•˜λ €κ³  λͺ‡ 가지 λ‹€λ₯Έ ν”„λ‘œμ νŠΈλ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

이것을 μž¬ν˜„ν•˜λŠ” μ½”λ“œλ₯Ό 곡유 ν•  μˆ˜μžˆλŠ” μ‚¬λžŒμ΄ 있으면 μ•Œλ €μ£Όμ„Έμš”.

Ivy ν™œμ„±ν™”λ˜μ–΄ μžˆμŠ΅λ‹ˆκΉŒ? ng version λ₯Ό μ‹€ν–‰ν•˜μ—¬ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. λΉ„ν™œμ„±ν™” ν•œ 경우 λΉ„ν™œμ„±ν™” ν•œ μ΄μœ κ°€ μžˆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ ν™œμ„±ν™”ν•˜κΈ° μœ„ν•΄ ν…ŒμŠ€νŠΈ ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? λ‚˜λŠ” ν™•μ‹€νžˆ κ·Έλ ‡κ²Œ 만 ν™•μΈν•˜λŠ” 방법을 λͺ¨λ₯΄κ² μ–΄μš” enableIvy λ‹Ήμ‹ μ˜ tsconfig.sjonκ³Ό tsconfig.app.json 파일.

Ivy ν™œμ„±ν™”λ˜μ–΄ μžˆμŠ΅λ‹ˆκΉŒ? ng version λ₯Ό μ‹€ν–‰ν•˜μ—¬ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. λΉ„ν™œμ„±ν™” ν•œ 경우 λΉ„ν™œμ„±ν™” ν•œ μ΄μœ κ°€ μžˆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ ν™œμ„±ν™”ν•˜κΈ° μœ„ν•΄ ν…ŒμŠ€νŠΈ ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? λ‚˜λŠ” ν™•μ‹€νžˆ κ·Έλ ‡κ²Œ 만 ν™•μΈν•˜λŠ” 방법을 λͺ¨λ₯΄κ² μ–΄μš” enableIvy λ‹Ήμ‹ μ˜ tsconfig.sjonκ³Ό tsconfig.app.json 파일.

UI 라이브러리λ₯Ό ꡬ좕 μ€‘μž…λ‹ˆλ‹€. npmμ—μ„œ ν—ˆμš©ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 아이비가 μ—†μŠ΅λ‹ˆλ‹€.

8.0.1 버전은 ivyμ—μ„œλ§Œ μž‘λ™ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ§€κΈˆμ€ μ™œ κ·ΈλŸ°μ§€ λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.

IVYλ₯Ό λΉ„ν™œμ„±ν™”ν–ˆμ„ λ•Œ angular 9μ—μ„œ λ™μΌν•œ λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš”. node_modules 및 lock νŒŒμΌμ„ μ‚­μ œν•˜κ³  npm install 및 λΉŒλ“œλ₯Ό λ‹€μ‹œ μ‹€ν–‰ν•˜λ©΄ λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

이 μ „μ—λŠ” λͺ¨λ“  것이 μ΅œμ‹  8.0.1μ—μ„œ 잘 μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€.

아이비가 ν™œμ„±ν™”λ©λ‹ˆλ‹€.

이전 버전 (7.1.0)으둜 λŒμ•„κ°€μ„œ λ‹€μ‹œ μž‘λ™ν•©λ‹ˆλ‹€.

λ‚˜λŠ” 같은 λ¬Έμ œκ°€ 있으며 Ivyλ₯Ό ν™œμ„±ν™”ν–ˆμŠ΅λ‹ˆλ‹€.
Angular 9λ₯Ό μ‹€ν–‰ν•˜λŠ” λ™μ•ˆ 버전 7.1.0을 μ‚¬μš©ν•˜μ—¬ μž‘λ™ν–ˆμ§€λ§Œ 이제 Angular 10이 λ‚˜μ™”μœΌλ―€λ‘œ 더 이상 μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
버전 7은 "ModuleWithProviders"λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. Angular 10μ—μ„œ λ³€κ²½λœ

static forRoot(options: ModuleOptions): ModuleWithProviders;

였λ₯˜ λ°œμƒ
ERROR in Invalid provider for LazyLoadImageHooks. useClass cannot be undefined. Usually it happens when: 1. There's a circular dependency (might be caused by using index.ts (barrel) files). 2. Class was used before it was declared. Use forwardRef in this case.

μ†ŒμŠ€ μ–Έμ–΄ νŒŒμΌμ„ μΆ”μΆœν•˜λ €κ³  ν•  λ•Œ 각도 10을 μ‚¬μš©ν•˜λŠ” 것과 λ™μΌν•œ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.
ng xi18n --format=xlf2 --output-path src/locales
였λ₯˜:
ERROR in Invalid provider for LazyLoadImageHooks. useClass cannot be undefined. Usually it happens when: 1. There's a circular dependency (might be caused by using index.ts (barrel) files). 2. Class was used before it was declared. Use forwardRef in this case.

Ivyλ₯Ό λΉ„ν™œμ„±ν™” ν•  λ•Œλ§Œ 이것을 μž¬ν˜„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. Angular 10 앱을 λ§Œλ“€μ—ˆμ§€ 만 Ivy λΉ„ν™œμ„±ν™”ν–ˆμ„ λ•Œλ§Œ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 이제 Ivy와 ν•¨κ»˜ μž‘λ™ν•˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μ΄λŠ” μƒˆ 버전을 κ²Œμ‹œν–ˆμŠ΅λ‹ˆλ‹€. μ‹œλ„ν•΄λ³΄κ³  νš¨κ³Όκ°€ μžˆλŠ”μ§€ ν™•μΈν•˜μ‹­μ‹œμ˜€ : npm install [email protected] .

μ‚¬μš©μž 지정 후크λ₯Ό μ‚¬μš©ν•˜λŠ” 경우 μ½”λ“œλ₯Ό μ—…λ°μ΄νŠΈν•΄μ•Όν•©λ‹ˆλ‹€.
전에:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { LazyLoadImageModule, IntersectionObserverHooks, Attributes } from 'ng-lazyload-image';
import { AppComponent } from './app.component';

class LazyLoadImageHooks extends IntersectionObserverHooks {
  async loadImage({ imagePath }: Attributes): Promise<string> {
    return await fetch(imagePath, {
      headers: {
        Authorization: 'Bearer ...',
      },
    })
      .then((res) => res.blob())
      .then((blob) => URL.createObjectURL(blob));
  }
}

@NgModule({
  declarations: [AppComponent],
  imports: [BrowserModule, LazyLoadImageModule.forRoot(LazyLoadImageHooks)],
  bootstrap: [AppComponent],
})
export class MyAppModule {}

ν›„:

import { NgModule, Injectable } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { LazyLoadImageModule, IntersectionObserverHooks, Attributes, LAZYLOAD_IMAGE_HOOKS } from 'ng-lazyload-image';
import { AppComponent } from './app.component';

@Injectable()
export class LazyLoadImageHooks extends IntersectionObserverHooks {
  async loadImage({ imagePath }: Attributes): Promise<string> {
    return await fetch(imagePath, {
      headers: {
        Authorization: 'Bearer ...',
      },
    })
      .then((res) => res.blob())
      .then((blob) => URL.createObjectURL(blob));
  }
}

@NgModule({
  declarations: [AppComponent],
  imports: [BrowserModule, LazyLoadImageModule],
  providers: [{ provide: LAZYLOAD_IMAGE_HOOKS, useClass: LazyLoadImageHooks }],
  bootstrap: [AppComponent],
})
export class MyAppModule {}

ivyκ°€μžˆλŠ” angular 10 μ•±μ—μ„œμ΄ 였λ₯˜κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ»΄νŒŒμΌμ€ μ •μƒμ μœΌλ‘œ μž‘λ™ν•˜μ§€λ§Œ ng xi18n λͺ…λ Ή

8.0.2-21 μ—…κ·Έλ ˆμ΄λ“œν•˜λŠ” 것이 λ„μ›€μ΄λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

Angular 10
[email protected]

providers: [{ provide: 'LazyLoadImageHooks', useClass: LazyLoadImageHooks }]

μž‘λ™ν–ˆλ‹€

버전 9.0.0μ—μ„œ μˆ˜μ •λ˜μ–΄μ•Όν•©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰