Как `angular2` экспортировать компонент?
Я создаю такой компонент: (из примера)
import {Component} from 'angular2/core';
@Component({
selector: 'my-app',
template: '<h1> ~ My First Angular 2-0 App By Gulp Automation ~ </h1>'
})
export class AppComponent { } //what it is exporting here?
и импортирование в другой модуль:
import {bootstrap} from 'angular2/platform/browser'
import {AppComponent} from './app.component' //what it imports here
bootstrap(AppComponent); //it works.
в index.html:
<script>
System.config({
packages: {
app: {
format: 'register', //what is means?
defaultExtension: 'js'
}
}
});
System.import('app/boot')
.then(null, console.error.bind(console));
</script>
Я не могу понять логику, кто-нибудь мне помогает?
заблаговременно.
Ответы
Ответ 1
Я думаю, что эти ссылки могут вам помочь: https://angular.io/guide/quickstart и https://daveceddia.com/angular-2-dependencies-overview/.
Фактически SystemJS несет ответственность за реализацию логики модуля и связи между ними. Для этого вам нужно включить файл SystemJS (systemjs
) на странице HTML и настроить его с помощью System.config
и, наконец, загрузить основной компонент вашего приложения Angular2 с помощью System.import
.
Вы явно используете SystemJs при запуске System.import
. В других элементах вашего приложения инструмент используется неявно, особенно если вы используете TypeScript. В этом случае достаточно простого import
для импорта другого модуля. Если вы посмотрите на файлы с расширением (файлы JavaScript), вы увидите, что используется SystemJS.
Приложение Конфигурация SystemJS (https://angular.io/docs/ts/latest/quickstart.html#!#systemjs) может дать вам несколько советов о конфигурации SystemJS для приложение Angular2
Вот ссылка на документацию относительно форматов модулей (атрибут format
в блоке System.config
): https://github.com/systemjs/systemjs/blob/master/docs/module-formats.md, Используя значение register
для атрибута format
, вы указываете, что System.register используется для определения модулей.
Надеюсь, это поможет вам,
Thierry
Ответ 2
класс экспорта AppComponent {}//что он здесь экспортирует?
Это объясняется (кратко) в Обзор архитектуры:
export class AppComponent { }
В заявлении export TypeScript говорится, что это модуль, класс AppComponent которого общедоступен и доступен для других модулей приложения.
Когда нам нужна ссылка на AppComponent, мы импортируем его следующим образом:
import {AppComponent} from './app.component';
Оператор import сообщает системе, что он может получить AppComponent из модуля с именем app.component, расположенным в соседнем файле. Имя модуля (id модуля AKA) часто совпадает с именем файла без его расширения.
Ответ 3
Компонент как модуль, который упаковывает некоторый код внутри, и другой модуль, который следует использовать, когда u экспортирует этот "модуль"
import {AppComponent} from './app.component'
AppComponent - это имя класса, angular2 знать имя компонента "AppComponent", которое было отправлено, "./app.component" означает "тот же каталог и найти файл с именем" app.component.ts "
Я новичок в ng2, надеюсь, что это поможет u