Я'м новичок в угловых и я'м все еще пытаюсь понять это. Я'вэ последовал курс по виртуальной академии Microsoft, и это было здорово, но я нашла небольшое несоответствие между тем, что они говорили и как себя вести мой код! В частности, я'пробовала, чтобы "поставить компонент внутри другого компонента, что" такой:
в
@Component({
selector: 'parent',
directives: [ChildComponent],
template: `
<h1>Parent Component</h1>
<child></child>
`
})
export class ParentComponent{}
@Component({
selector: 'child',
template: `
<h4>Child Component</h4>
`
})
export class ChildComponent{}
в
Это тот же пример, что они делают на поле, но в мой код не'т работу! В частности VisualStudio говорит мне, что 'директивы' собственность не'т существуют в компоненте декоратор. Как я могу решить это?
Вы Дон'т положить компонент в директив
Вы реестр это в декларациях@NgModule`:
@NgModule({
imports: [ BrowserModule ],
declarations: [ App , MyChildComponent ],
bootstrap: [ App ]
})
и тогда вы просто положить его в Родительском'шаблон с HTML как : <мой ребенок></моим ребенком>
Что's оно.
Если убрать атрибут директивы, он должен работать.
@Component({
selector: 'parent',
template: `
<h1>Parent Component</h1>
<child></child>
`
})
export class ParentComponent{}
@Component({
selector: 'child',
template: `
<h4>Child Component</h4>
`
})
export class ChildComponent{}
Директивы, как компоненты, но они используются в атрибутах. Они также имеют Декларатор директива@
. Вы можете узнать более подробно о директивах структурные Директивы и директивы атрибут.
есть два других вида угловых директив, описан подробно В другом месте: (1) компоненты и (2) атрибут директивы.
компонент управляет регионом HTML в виде "родной" HTML элемент. Технически это'директива с шаблон ы.
Кроме того, если вы откройте словарь вы можете найти, что компоненты также директив.
директивы относятся к одной из следующих категорий:
компоненты совместить логику приложения с HTML-шаблона для отображения представлений приложения. Компоненты обычно представлены в виде HTML элементы. Они являются строительным материалом для угловой приложения.
директивы атрибут можно слушать и изменять поведение других HTML-элементы, атрибуты, свойства и компоненты. Они обычно представляются как атрибуты HTML, отсюда и название.
структурные директивы несут ответственность за формирование или изменение разметки HTML, как правило, путем добавления, удаления или изменения элементов > и их детей.
Разница в том, что компоненты имеют шаблон. См. угловые архитектура обзор.
директива класс с
@директиву
декоратор. Компонент представляет собой директива-с-а-шаблон; а@компонент
оформителя на самом деледиректива @
декоратор расширен с помощью шаблона-ориентированные функции.
В метаданные@компонент
не'т иметь атрибут директив
. См. компонент декоратор.
Я думаю, что в вашей угловой-2 вариант директивы не поддерживаются компонентом декоратор, следовательно, вы должны зарегистрируйтесь директивы так же, как и многие другие компоненты @NgModule, а затем импортировать в компонент, как показано ниже, а также удалить директивы: [ChildComponent]
от декоратора.
import {myDirective} from './myDirective';