Angular2 Исключение: токен должен быть определен
приложение/boot.ts
import {bootstrap} from 'angular2/platform/browser';
import {AppComponent} from './app.component';
bootstrap(AppComponent);
приложение/app.component.ts
import {Component} from 'angular2/core';
@Component({
selector: 'my-app',
template: '{{title}}'
})
class AppComponent {
title: "app"
}
Ошибка:
EXCEPTION: Token must be defined!
STACKTRACE:BrowserDomAdapter.logError @ angular2.dev.js:23514
ExceptionHandler.call @ angular2.dev.js:1147
(anonymous function) @ angular2.dev.js:14801
NgZone._notifyOnError @ angular2.dev.js:5796
collection_1.StringMapWrapper.merge.onError @ angular2.dev.js:5700
run @ angular2-polyfills.js:141
(anonymous function) @ angular2.dev.js:5719
NgZone.run @ angular2.dev.js:5681
ApplicationRef_.bootstrap @ angular2.dev.js:14906
bootstrap @ angular2.dev.js:25054
execute @ boot.ts:4
u @ system.src.js:4597
execute @ system.src.js:4597
y @ system.src.js:4597
...
Ответы
Ответ 1
Это еще одна ошибка, которая застала меня несколько раз. Я забыл (еще раз) экспортировать свой корневой компонент. Это должно быть:
export class AppComponent {
Если бы я потратил время, чтобы посмотреть чуть ближе на трассировку стека (вместо поиска StackOverflow и не обнаружив моей точной проблемы), я бы заметил, что он ссылался на один из файлов, которые я написал, boot.ts:4
.
Ответ 2
В моем случае это было просто из-за запятой в конце следующей строки:
import {Component} from 'angular2/core';
Ответ 3
Просто для всех, кто придет сюда, ищет какой-либо свет с этим очень общим сообщением об ошибке, я получал это сообщение из одного из моих тестовых файлов спецификаций, потому что в нижней части того же файла спецификации был установлен макет службы, только что перемещенный он до вершины (до определения теста), и теперь все работает как ожидалось.
Ответ 4
Мне нужно было убедиться, что AppComponent был передан в функцию bootstrap в моей main.ts:
bootstrap(AppComponent);
Ответ 5
Убедитесь, что у вас есть все эти записи, также проверьте приложение Typo Errors вместо AppComponent и т.д.
app.component.ts
export class AppComponent {
name: string;
constructor() {
this.name = "World";
}
}
main.ts
import {bootstrap} from 'angular2/platform/browser';
import {AppComponent} from './app.component';
bootstrap(AppComponent);
Ответ 6
Я тоже столкнулся с этой проблемой. В моем случае это было из-за расширения Augury, которое металось, потому что у меня был Angular 2.1.3, и он поддерживает 2.3.0 и выше.