web-dev-qa-db-ja.com

Angular 2 index.htmlにコンポーネントが表示されない

非常に新しいAngular 2我慢してください。新しいコンポーネントをindex.htmlページに表示しようとしています。ファイルセットは、GitHubの基本的なクイックスタートファイルからのものです。私はそのような新しいコンポーネントを作成しました:

import { Component } from '@angular/core';

@Component({
    selector: 'app-user-item',
    template: `<h1>It works!</h1>`,
})
export class UserItemComponent {

}

セレクタータグをHTMLで宣言しました。

<!DOCTYPE html>
<html>
  <head>
    <title>Angular QuickStart</title>
    <base href="/">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="styles.css">

    <!-- Polyfill(s) for older browsers -->
    <script src="node_modules/core-js/client/shim.min.js"></script>

    <script src="node_modules/zone.js/dist/zone.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>

    <script src="systemjs.config.js"></script>
    <script>
      System.import('main.js').catch(function(err){ console.error(err); });
    </script>
  </head>

  <body>

    <my-app>Loading AppComponent content here ...</my-app>
    <app-user-item>loading another component</app-user-item>
  </body>
</html>

App.module.tsの上部にインポートを追加し、app.module.tsの宣言配列にコンポーネント名を追加することも試みました。しかし、まだ何もありません。ファイル構造を確認したところ、user-item.component.tsのjsバージョンがあります。しかし、私は変化を見ることができません。

任意の助けいただければ幸いです。

乾杯

7
user3355961

user-item.component.ts:

import { Component } from '@angular/core';

@Component ({
   selector: 'app-user-item',
   template: `<p>child item</p>`
)}

export class UserItemComponent {
  constructor(){ }
}

user.component.ts:

import { Component } from '@angular/core';

@Component({
  selector: 'app-user',
  template: ` <h2> My User Item </h2>
   <app-user-item></app-user-item>`
})

export class UserComponent { 
  constructor() {}
}

user.module.ts:

import { NgModule } from '@angular/core';
import { UserComponent } from './user-component';
import { UserItemComponent } from './user-item-component';

@NgModule({ 
  declarations: [
    UserComponent, 
    UserItemComponent
  ]
})

export class UserModule {}

Angular-cli( https://github.com/angular/angular-cli )を使用することを強くお勧めします。 angularページでチュートリアルを実行します。ただし、ユースケースでは上記のコードで十分であり、機能するはずです。通常、親コンポーネントと同じモジュールでサブコンポーネントを宣言します。このモジュールはインポートされますapp.module(ルートモジュール)

Angular https://angular.io/docs/ts/latest/tutorial/toh-pt2.html のマスター/詳細コンポーネントチュートリアルをご覧ください

1
BigPenguin

私はこれとまったく同じ問題を抱えていました。 app.module.tsファイルで、必ずbootstrap宣言にコンポーネントを含めてください。

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

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

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

私の場合、app.component.tsファイルで定義されたSelectorindex.htmlと一致しませんでした

0
Mohini Mhetre