angular/angular.io

Change misleading Quickstart example from Hello Angular to Hello World

anirudh24seven opened this issue · 3 comments

In the example of a component that displays a simple string:

import { Component } from '@angular/core';

@component({
selector: 'my-app',
template: <h1>Hello {{name}}</h1>
})
export class AppComponent { name = 'Angular'; }

the example export class AppComponent { name = 'Angular'; } is very misleading for newcomers. It is hard to know whether Angular is a keyword or a core concept or just an example text.

I would recommend changing it into export class AppComponent { name = 'World'; } or something equivalent instead.

Proposed change:

Actual:

import { Component } from '@angular/core';

@component({
selector: 'my-app',
template: <h1>Hello {{name}}</h1>
})
export class AppComponent { name = 'Angular'; }

Expected:

import { Component } from '@angular/core';

@component({
selector: 'my-app',
template: <h1>Hello {{name}}</h1>
})
export class AppComponent { name = 'World'; }

Actual's output:
Hello Angular

Expected output:
Hello World

Changing the above would mean changing this line as well, to something more suitable:

In the example, change the component class's name property from 'Angular' to 'World' and see what happens.

I don't see it. It is a string. If it were a non string or somethihng, I would agree perhaps, but as a string, I don't think there is much confusion.

It is a string.

By that logic, the selector name is a string too. But it ends up as a new HTML tag.
selector: 'my-app' -> <my-app>

As a newbie to Angular, it was confusing because of the above counter-example of a string. Anecdotally, a newbie like me is bound to think that name='Angular' would be important too (although it is not).

Also to consider that the documentation shows the code before showing the output. If the reader knew that the output would be Hello Angular, they would know what name='Angular' implied. I expected to see Hello World as the Quickstart output but it was not.