Book Image

Switching to Angular 2

By : Minko Gechev
Book Image

Switching to Angular 2

By: Minko Gechev

Overview of this book

<p>AngularJS is a JavaScript framework that makes building web applications easier. It is used today in large-scale, high-traffic websites that struggle with under-performance, portability issues, as well as SEO unfriendliness, and complexity at scale.</p> <p>Angular 2 changes that.</p> <p>It is the modern framework you need to build performant and robust web applications. “Switching to Angular 2” is the quickest way to get to grips with Angular 2 and will help you transition in to the brave new world of Angular 2.</p> <p>We’ll start with an overview which sets the changes of the framework in context with version 1.x. After that, you will be taken on a TypeScript crash-course so we can take advantage of Angular 2 in its native, statically-typed environment. We’ll look at the new change-detection method in detail, how Directives and Components change how you create websites with Angular, the new Angular 2 router, and much more.</p> <p>By the end of the book, you’ll be ready to start building quick and efficient Angular 2 applications that take advantage of all the new features on offer.</p>
Table of Contents (16 chapters)
Switching to Angular 2
Credits
Foreword
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Defining generic views with TemplateRef


We are already familiar with the concepts of inputs, content, and view children, and we also know when we can get a reference to them in the component's life cycle. Now, we will combine them and introduce a new concept: TemplateRef.

Let's take a step back and take a look at the last to-do application we developed earlier in this chapter. In the following screenshot, you can see what its UI looks like:

If we take a look at its implementation in ch4/ts/inputs-outputs/app.ts, we'll see that the template used to render the individual to-do items is defined inside the template of the entire to-do application.

What if we want to use a different layout to render the to-do items? We can do this by creating another component called Todo, which encapsulates the responsibility of rendering them. Then, we can define separate Todo components for the different layouts we want to support. This way, we need to have n different components for n different layouts, even...