December 11, 2018

Using git hooks to keep your codebase clean

Problem Let’s be honest – developers tend to be lazy. Whenever you start a new project you’re probably saying to yourself that you want to do everything better this time but often times your new project becomes the same mess as your previous one. I want to introduce a neat little trick that might help […]
READ MORE

Kai Henzler
Developer at thecodecampus </>


December 3, 2018

Nested Forms in Angular

This Article is based on Kara Ericksons talk about “Angular Forms” at the Angular Connect 2017. I am going to give you a quick example to get started with nested Forms. TL;DR Extract the HTML in new ComponentInject ControlContainer in new ComponentAccess the Form via ControlContainer.controlpass the parent Form into the nested Component with the […]
READ MORE

Frederik von Berg
Developer at thecodecampus </>


November 27, 2018

Virtual Scrolling in Angular 7

The release of Angular 7 includes a feature that can improve the performance of your application dramatically. Virtual scrolling is highly beneficial when your app has to deal with a lot of data that has to be displayed in tables or lists. Virtual Scrolling I could explain what virtual scrolling is, but I couldn’t do […]
READ MORE

Kai Henzler
Developer at thecodecampus </>


November 21, 2018

Call a method on @Input() change

Problem You probably already run into this issue. Inside a component, you want to react to the change of an @Input() value e.g. by calling a method of your component. For example we have get an @Input() filter: string from our parent component and if the @Input() changes, we want to update our data in […]
READ MORE

Frederik von Berg
Developer at thecodecampus </>


November 20, 2018

Building an Angular App in parallel for multiple languages

Problem When using the built-in Angular Internationalization (i18n) the Angular guide tells you in detail what you have to do to set up your application to support multiple languages. The guide lacks the details on how to properly integrate the build into a common web application deployment workflow. In this brief blog post I’m going to […]
READ MORE

Kai Henzler
Developer at thecodecampus </>


October 5, 2018

Angular 2 – Set Class of parent element with @HostBindings

With the @HostBinding() annotation, Angular gives you a useful tool to handle manipulations of css classes of parent Elements. The advantage is quite clear, the required logic remains in the components class and is not set in the template file. This makes it easier to test and improves the readability of the template file. In […]
READ MORE

Can Kattwinkel
Developer at thecodecampus </>


July 26, 2018

Locally serving the build distribution of an Angular SPA

tl;dr Use Node Package local-web-server and its command ws with the spa flag like this: ws --spa index.html While developing an Angular based SPA usually you will use the Angular CLI as build too. The CLI has an integrated development server which is able to handle client-side routing. So whenever a reload happens and you’re […]
READ MORE

Philipp Burgmer
Developer at thecodecampus </>


July 18, 2018

Angular, Preserving Query Params and Google AdWords

… and how all this leads to an incorrect source of traffic in Google Analytics and incorrect conversion attribution.   The situation is as follows: On www.thecodecampus.de we run an Angular 6 page. We advertise our product with Google AdWords. If a visitor comes via Google AdWords, the URL is appended with a glcid and several […]
READ MORE

Can Kattwinkel
Developer at thecodecampus </>


March 2, 2018

The ‘this’ context of type ‘void’ is not assignable to method’s ‘this’ of type ‘Observable<{}>‘.

If you are experiencing this error – usually something with your RxJS imports is wrong. So you should go through them manually or simply delete all imports from RxJS in the corresponding file and let the IDE generate them again. Something broken could look like this:

Better working might be:

What is happening? RxJS […]
READ MORE

Can Kattwinkel
Developer at thecodecampus </>