Финальная версия Angular 2 не может найти имя module — ModuleID: module.id

#angularjs #angular

#angularjs #angular

Вопрос:

Я только что обновился до финальной версии Angular 2 с RC 4, и теперь я получаю ошибку cannot find name 'module' в своем коде:

 @Component({
    selector: 'dashboard',
    moduleId: module.id,
    templateUrl: 'dashboard.component.html',
    styleUrls: ['dashboard.component.css'],
    styles: ['.chart {display: block; width: 100%;} .title.handle{background-color:transparent;}']

})
  

Есть идеи?

Заранее спасибо!

ОБНОВЛЕНИЕ, это ошибка:

 zone.js:355 Unhandled Promise rejection: Template parse errors:
Only void and foreign elements can be self closed "span" ("i role="presentation"><a role="menuitem" tabindex="-1" href="http://BruinAlert.ucla.edu">BruinAlert [ERROR ->]<span class="icon-external-link" /></a></li>
                                    <li role="presentat"): WidgetBankComponent@104:138
    Only void and foreign elements can be self closed "span" ("tion"><a role="menuitem" tabindex="-1" href="https://logon.ucla.edu/passchange.php">Change Password [ERROR ->]<span class="icon-external-link" /></a></li>
 at DirectiveNormalizer.normalizeLoadedTemplate (http://localhost:56159/node_modules/@angular/compiler//bundles/compiler.umd.js:13373:21)
    at eval (http://localhost:56159/node_modules/@angular/compiler//bundles/compiler.umd.js:13366:53)
    at ZoneDelegate.invoke (http://localhost:56159/node_modules/zone.js/dist/zone.js:203:28)
    at Zone.run (http://localhost:56159/node_modules/zone.js/dist/zone.js:96:43)
    at http://localhost:56159/node_modules/zone.js/dist/zone.js:462:57
    at ZoneDelegate.invokeTask (http://localhost:56159/node_modules/zone.js/dist/zone.js:236:37)
    at Zone.runTask (http://localhost:56159/node_modules/zone.js/dist/zone.js:136:47)
    at drainMicroTaskQueue (http://localhost:56159/node_modules/zone.js/dist/zone.js:368:35)
    at XMLHttpRequest.ZoneTask.invoke (http://localhost:56159/node_modules/zone.js/dist/zone.js:308:25)consoleError @ zone.js:355_loop_1 @ zone.js:382drainMicroTaskQueue @ zone.js:386ZoneTask.invoke @ zone.js:308
zone.js:357 Error: Uncaught (in promise): Error: Template parse errors:(…)consoleError @ zone.js:357_loop_1 @ zone.js:382drainMicroTaskQueue @ zone.js:386ZoneTask.invoke @ zone.js:308
  

Комментарии:

1. Я обновил свой ответ, пожалуйста, проверьте

Ответ №1:

Редактировать после обновленного вопроса:

Ваш HTML-шаблон неверен, у вас есть самозакрывающийся элемент span, подобный этому:

<span class="icon-external-link" />

что не разрешено в HTML.

Измените его на <span class="icon-external-link"></span>


Перед редактированием:

Используете ли вы последнюю версию angular-cli с Webpack? Если да, вам следует удалить все moduleId ссылки, как описано в этом руководстве по обновлению:

https://github.com/angular/angular-cli/wiki/Upgrading-from-Beta.10-to-Beta.14

  1. Удалите все упоминания о ModuleID: module.id . В webpack, module.id — это число, но Angular ожидает строку.

Комментарии:

1. Я не уверен. Как я могу определить, какую версию angular-cli я использую?

2. ng -v в терминале / cmd

3. в Visual Studio это выдает ошибку ‘ng’, которая не распознается как имя командлета и т. Д

4. Вы удалили все ссылки на moduleId из своего кода? Я не могу поверить, что после этого он выдает ту же ошибку

5. Я удалил их все, но я все еще получаю zone.js:355 Unhandled Promise rejection: Template parse errors:

Ответ №2:

Попробуйте удалить его, тогда это должно быть сделано для всех ваших компонентов в вашем приложении

 @Component({
    selector: 'dashboard',
    templateUrl: 'dashboard.component.html',
    styleUrls: ['dashboard.component.css'],
    styles: ['.chart {display: block; width: 100%;} .title.handle{background-color:transparent;}']

})
  

app.module.ts

 import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

import { AppComponent } from './app.component';

import { DashboardComponent } from './dashboard-component/dashboard-component.component';


@NgModule({
    imports: [
        BrowserModule
    ],
    declarations: [
        AppComponent,
        DashboardComponent
    ],
    providers: [],
    bootstrap: [AppComponent],
})
export class AppModule { }
  

Комментарии:

1. комментируя это, я получаю огромное количество zone.js и ошибки обещания

2. @blubberbo попробуйте просто удалить его тогда

3. у вас есть что-то вроде app.module.ts с `@NgModule ({…}) в вашем приложении?

4. Я делаю. Не все мои компоненты это делают, но некоторые из них это делают. Я использую финальную версию Angular 2

5. Хорошо, если в вашем модуле вы импортируете и объявляете свой компонент, тогда у вас должно быть все в порядке, чтобы удалить moduleId: module.id его из вашего компонента (ов). Смотрите мой отредактированный пост.