1. ホーム
  2. angular

[解決済み] Angular2 Selectorが、ネストしたComponentのどの要素にもマッチしない。

2022-02-19 14:18:54

質問

私は2つのネストされた @Components en angular 2. ビューは正常にレンダリングされますが、初回に必ずjavascriptエラーがスローされます。 以下は、私のTypescriptのコードです。

アプリのHTMLです。

<body>
    <my-app>loading...</my-app>
</body>

アプリコンポーネントです。

import {bootstrap, Component} from 'angular2/angular2';
import {CanvasComponent} from "./CanvasComponent";

@Component({
  selector: 'my-app',
  template: `
      <h1>{{title}}</h1>
      <h2>My Games</h2>
      <div>
        <my-canvas></my-canvas>
      </div>
  `,
  directives: [CanvasComponent]
})

class AppComponent {
}

bootstrap(AppComponent);

Canvas Componentです。

import {bootstrap, Component, View} from 'angular2/angular2';

@Component({
  selector: 'my-canvas'
})

@View({
  template: `
  <div>
    <span>Balls:</span>
    <div>{{canvas.length}}</div>
  </div>
  `
})

export class CanvasComponent {
  canvas = [1,2,3];
}

bootstrap(CanvasComponent);

というエラーが発生します。

EXCEPTION: The selector "my-canvas" did not match any elements

解決方法は?

削除する bootstrap(CanvasComponent) を追加してください。 CanvasComponent ファイルを作成します。を使って2回目のブートストラップアプリケーションを起動しようとしています。 CanvasComponent をルートとし my-canvas 要素で構成されています。もちろん、それは見つけることができません。