This commit is contained in:
Ryan Cavanaugh 2017-10-18 14:24:51 -07:00
Родитель 0e9c6070cd
Коммит a4e8188dcc
11 изменённых файлов: 39 добавлений и 5 удалений

Просмотреть файл

@ -25,17 +25,51 @@ Open `src\app\app.component.ts`. The Angular2 language service warns you that th
![Error about missing module](tour_images/no_module_error.png)
### Errors in Inline Templates
### Inline Templates
Still in `src\app\app.component.ts`, you can try editing the inline template in `InlineComponent`. The project includes a syntax error:
### .ngml Files
![Syntax error](tour_images/closing_tag_error.png)
### Errors
Fix the syntax error by changing `</spa>` to `</span>`. You'll now see a semantic error:
### Completions
![Inline semantic error](tour_images/semantic_inline_error.png)
Angular2 identified another mistake here - there is no method named `toLower`; fix this to `toLowerCase`. The error disappears:
![Errors resolved](tour_images/no_error.png)
### Navigation
Now that we've fixed the errors, let's try some navigation. Place the caret on `prop1` in the inline template. Open the context menu and select "Go to Definition":
![Go to Definition](tour_images/go_to_def.png)
This will take us to the definition of `prop1` in the corresponding component:
![Navigated](tour_images/navigated.png)
### .ngml Files
Open `src\app\app.component.ngml`. This is the template file for the corresponding class `AppComponent` in `app.component.ts`.
On line 5, place the caret on `prop1` and invoke "Go to Definition" again:
![Go to Definition from ngml](tour_images/ngml_go_to_def.png)
This navigates us to the `prop1` declaration in `app.component.ts`. Note that even though the file had two classes, both with properties named `prop1`, we were properly navigated to the correct one:
![Navigated from ngml](tour_images/ngml_navigated.png)
### Completions
In both inline templates and ngml files, we'll get completion lists.
Open `src\app\contact\contact.component.ngml`. Go to line 29 and place the caret to the right of `.` in `contactForm.status`, and press `Ctrl-Space` to open the completion list:
![Completions in ngml](tour_images/ngml_completion.png)
Visual Studio will display all the members of the `contactForm`. You can also see completions in NGML template positions. Place the caret on line `23` after `div`, and press `Ctrl-Space` to open the completion list:
![Template completions in ngml](tour_images/ngml_template_completions.png)
Now you'll see a list of the allowed attribute names, including those specific to Angular 2's template syntax, in the completion list.

Просмотреть файл

@ -2,7 +2,7 @@ import {Component} from '@angular/core';
@Component({
selector: 'app',
template: '<span>{{prop1.toLower()}}</spa>',
template: '<span>{{prop1.toLowerCase()}}</span>',
})
export class InlineComponent {
prop1 = 'hello';

Двоичные данные
tour_images/closing_tag_error.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 8.4 KiB

Двоичные данные
tour_images/go_to_def.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 11 KiB

Двоичные данные
tour_images/navigated.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 5.3 KiB

Двоичные данные
tour_images/ngml_completion.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 17 KiB

Двоичные данные
tour_images/ngml_go_to_def.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 10 KiB

Двоичные данные
tour_images/ngml_navigated.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 10 KiB

Двоичные данные
tour_images/ngml_template_completions.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 10 KiB

Двоичные данные
tour_images/no_error.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 3.6 KiB

Двоичные данные
tour_images/semantic_inline_error.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 5.9 KiB