Angular2 选择器不匹配嵌套组件中的任何元素

标签 angular

我有两个嵌套的 @Components en angular 2。 View 呈现得很好,但它总是第一次抛出 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 组件:

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

最佳答案

CanvasComponent 文件中删除 bootstrap(CanvasComponent)。它尝试使用 CanvasComponent 作为根并在您的 App HTML 中查找 my-canvas 元素来第二次引导应用程序。当然找不到了。

关于Angular2 选择器不匹配嵌套组件中的任何元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33310222/

相关文章:

typescript - 何时在 typescript Angular 2 中使用 @Optional() 和三元运算符?

javascript - navTrl.push() 中的 promise 错误

angular - 动态更改 Angular 12 中垫子对话框的宽度/高度

html - 悬停时更改 Angular Material 扩展标题的颜色

angular - 在移动设备上显示 Accordion 并在其他设备上显示标签

javascript - typescript/javascript 中的递归函数

node.js - 为事件驱动架构选择正确的协议(protocol)。

Angular ControlValueAccessor onChanges 不更新表单控件值

javascript - 当用户按下 Enter 并且元素失去焦点时触发事件

angular - ng build --prod (AOT) 时装饰器不支持函数调用