[angular] Dynamic Component with createComponent
목표
ngIf를 활용하여 조건에 맞는 component만 노출하기
ngFor에 연결된 배열의 값이 변경될 때 refresh가 발생하여 rendering이 일어나는데, 이를 방지하기 위해 trackBy를 사용합니다. 즉, trackBy를 사용하면 값이 변경되어도 rendering이 되지 않으므로 성능을 향상 시킬 수 있습니다.
계획 ngIf에서 하나의 Observable 정의합니다. ngIf에서 둘 이상의 Observable 정의합니다.
과제 scully에 ngx-translate 적용하기 실행 후 언어를 변경하고 refresh 했을 때 rehydration 현상 확인 처음부터 변경된 언어로 작성된 static html을 화면에 노출하기
과제 Scully를 적용하였을 때, 아래의 과제를 테스트 해봅니다. 빌드 타임에 모든 형태의 routing 별로 index.html 이 만들어지는가? 공통 meta, title 설정이 가능한가? 만일 그렇다면 routing별로 각각 다른 dynamic meta, tit...
환경 Angular 10
Angular-cli에서 발생하는 다양한 WARN / ERROR의 해결 방법을 정리합니다.
원인 여러 앱에서도 종종 발생하는 문제로 input에서 한글 또는 2-byte 글자를 입력하다보면 마지막 글자가 빠지는 현상이 나타납니다. 이는 글자와 관계없는 키(예를들어, 화살표나 doc키 등)을 한 번 더 입력하면 해결되는데 매우 불편한 것이 사실입니다.
환경 Angular 9
환경 windows, vscode, powershell, Angular 10.0.8
현상 windows에서 Angular cli를 설치합니다.
숫자만 입력 받는 Directive를 만들려고 하다가 마침 아래의 사이트가 있기에 바로 적용하였습니다.
ngFor는 DOM을 반복해서 출력해주는 기능을 합니다. 여기에 몇가지 추가 요소를 붙일 수 있는데 대표적인 것으로는 index가 있습니다.
Unknown 타입은 Typescript 3.0 부터 적용 되었습니다.
원인 @babel/compat-data에 새로운 플러그인이 추가될 때 기존 @babel/preset-env의 버전과 충돌합니다. available-plugins.js 파일에 정의되어 있지 않은 플러그인인 경우 에러를 던집니다.
원인 form 태그에 formGroup을 설정하였는데 ‘No provider for ControlContainer’ 에러가 발생하였습니다.
원인 form 태그에 ngModel을 넣었을 때 Cannot bind to ‘ngModel’ since it isn’t a known property of ‘input’ 에러가 발생합니다.
분석 angular에서 js 파일에 접근할 때는 d.ts를 활용하거나 import 하여 사용할 수 있습니다. 그러나, 반대의 경우 js에서 angular에 접근하고 싶을 때는 어떻게 할까요?
electron 설치 electron을 npm에서 간단히 받아 설치할 수 있습니다.
StaticInjectorError(AppServerModule)[InjectionToken ng-toolkit-window] 에러를 해결해보겠습니다.
@ng-toolkit/universal ERROR: Cannot read property ‘unshift’ of undefined 에러에 대해 알아보겠습니다.
github에 업로드 된 Angular Universal 프로젝트를 Heroku에 업로드 하는 방법을 알아보겠습니다.
Typescript에서 외부 js 파일을 가져오는 방법을 몇 가지 알아보겠습니다. 5년전 만해도 매우 생소했던 Typescript가 Angular를 필두로 최근 몇 년 사이에 활용 빈도가 급격히 증가하여 React나 Vue.js를 비롯하여 심지어 node.js도 사용할 정도로 대세...
보통의 차트 라이브러리가 Sparkline Chart를 지원하지 않아 (특히 Angular를 지원하는 차트 라이브러리) 직접 만들어 사용해보려고 합니다. 활용할 차트 라이브러리를 이것 저것 보다가 ng2-nvd3로 그린 차트가 가장 마음에 들어서 이 라이브러리를 활용하여 만들어 보...
Angular8에서는 기대하던 Ivy Rendering이 추가되고, 그 외에 많은 개선 및 추가 기능들이 포함되었습니다. 그 중에서 Angular를 제대로 활용하기 위해 반드시 알아야 할 새 기능과 변경된 기능을 추려서 정리해보겠습니다. 이해하지 못해 빠진 부분도 있으므로 댓글로 ...
angular universal 프로젝트가 server platform에서 실행 중일 때 window.location 명령을 사용하는 방법 입니다. @angular/common에서 지원하는 Location Service를 활용하는 방법이므로 별도의 라이브러리를 가져올 필요는 없습니...
Angular가 실행 중인 플랫폼이 브라우저인지 서버인지 확인하는 코드 입니다.
Angular에서 SSR을 사용하는 방법입니다. 우수한 Framework 답게 쉽고 빠르게 적용할 수 있도록 잘 구성되어 있기 때문에, 아래의 예제만 따라해도 충분히 실전에 사용할 수 있을 것 입니다.
몇년 전부터 React, Angular, Vue와 같은 SPA 방식의 Front-end 개발 방식이 크게 유행하고 있습니다. 이는 매우 빠른 랜더링을 제공하므로 페이지 전환 시 페이지가 하얗게 되는 현상을 방지할 수 있으며 웹앱으로 개발 시에도 Native 앱과 크게 차이가 없는 ...
자체 개발한 라이브러리를 마치 외부 라이브러리를 사용하는 것처럼 만들 수 있습니다.
기본으로 제공되는 validation외에 cusom validation을 사용하는 방법을 알아보겠습니다. 여기에서는 정규식 적용하기와 새로운 validation 적용하는 방법을 간단히 로그인 form을 활용해 알아보겠습니다.
Angular의 FormControl 이나 FormGroup을 Material과 연동해서 사용하다보면 에러처리를 커스터마이징 해야할 때가 있습니다. 예를 들자면 동의 체크박스가 반드시 체크 되어야 하므로 체크가 되지 않으면 에러 메시지를 보여주어야 한다는 것 등입니다.
앱이 실행되는 시점에서 component보다 빠르게 실행하는 함수를 만들어 보고자 합니다.
Html에서 Form은 자주 사용되는데 Angular에서는 이 사용법이 은근 쉽지 않습니다.
compodoc에서 문서화를 시도할 때 Angular 8 에서 변경된 routing 방식 ( import().then(m->m.Module) ) 을 인식하지 못하는 문제가 발생합니다.
Angular에 JSDoc과 같은 자동 문서화 라이브러리를 사용하고자 하실 것입니다.
Angular의 Routing Lazy Loading 방법이 변경되었습니다.
버전 업데이트 과정을 설명합니다. 여기에서는 7버전에서 8버전 업데이트를 설명합니다. 모든 버전 업데이트의 방식이 동일하므로 다른 버전도 아래와 같이 진행하면 됩니다.
Enum의 정의와 종류에 대해 정리합니다.
PWA를 활용하여 점검 또는 오프라인 공지를 만드는 방법입니다.
Angular에서는 PWA를 매우 쉽게 적용할 수 있습니다. Cli에서 단순히 추가만 하면 알아서 필요한 요소들이 모두 설정되기 때문입니다. 이번 시간은 생성된 프로젝트에 PWA를 적용하고 작동여부 확인 테스트까지 진행해보겠습니다.
Component에서 라우팅 적용 시 사용할 수 있는 옵션 목록 입니다.
component가 onInit 에서 service에서 가져온 값을 template에 적용할 때 template에서 에러가 발생합니다. 이는 변수에 값이 할당되기 전에 template에서 변수를 읽으려고 시도하기 때문인데 이를 해결하려면 nullable을 허용하는 ? 를 넣어 해...
Subject를 Subscribe를 할 때 Subscription으로 받아둔 뒤 해당 Subscription을 unsubscribe 하는 방법입니다.
rxjs에서 pipe에서 주로 사용하는 명령들을 정리하였습니다.
@Input이 데이터를 전달하지 못하는 원인을 분석합니다.
ng test와 ng e2e 적용 방법과 차이점을 알아봅시다.
route에서 canActivate와 canDeactivate, canActivateChild, canLoad 옵션처리 방식을 알아보고, 함께 Guard 사용 방법을 알아보겠습니다.
Angular Material에 기본적으로 적용된 모든 애니메이션이나 특정 Material의 애니메이션만 중지하고 싶을 때, 컨트롤 하는 방법입니다.
중복 사용되는 모듈을 Shared Module로 공유하는 방법 입니다.
서버와 클라이언트에서 구성하는 라우팅의 비교 입니다.
컴포넌트 없이 라우팅을 구성하는 방법입니다.
ngx-translate를 활용하여, 서버 요청 및 리로딩 없이 즉시 다국어를 적용합니다.
Angular 에러 발생 이벤트를 모두 캐치하는 클래스를 만들어 봅시다.
Module 또는 Component 단위로 Lazy Loading 하는 방법을 정리합니다.