Javascript ng组件无效

Javascript ng组件无效,javascript,angular,Javascript,Angular,我正在学习ng内容。既然我们可以很容易地这样写,为什么还要用它呢 含ng内容 menu.component.html <div> <app-message> <h1>Laptop</h1></app-message> </div> <div> <ng-content></ng-content> <p>something text to be

我正在学习ng内容。既然我们可以很容易地这样写,为什么还要用它呢

含ng内容

menu.component.html

<div>

    <app-message> <h1>Laptop</h1></app-message>
</div>
<div>
    <ng-content></ng-content>
        <p>something text to be display</p>
        <button > Submit</button>
</div>
<div>
    <h1>Laptop</h1>
    <app-message> </app-message>
</div>
<div>
        <p>something text to be display</p>
        <button > Submit</button>
</div>
<ng-content></ng-content>
<ng-content></ng-content>
<ng-content [data]='THIS IS THE DATA'></ng-content>
<p>The data we are looking for is {{data}} </p>

笔记本电脑
message.component.html

<div>

    <app-message> <h1>Laptop</h1></app-message>
</div>
<div>
    <ng-content></ng-content>
        <p>something text to be display</p>
        <button > Submit</button>
</div>
<div>
    <h1>Laptop</h1>
    <app-message> </app-message>
</div>
<div>
        <p>something text to be display</p>
        <button > Submit</button>
</div>
<ng-content></ng-content>
<ng-content></ng-content>
<ng-content [data]='THIS IS THE DATA'></ng-content>
<p>The data we are looking for is {{data}} </p>

要显示的文本

提交
无ng内容

menu.component.html

<div>

    <app-message> <h1>Laptop</h1></app-message>
</div>
<div>
    <ng-content></ng-content>
        <p>something text to be display</p>
        <button > Submit</button>
</div>
<div>
    <h1>Laptop</h1>
    <app-message> </app-message>
</div>
<div>
        <p>something text to be display</p>
        <button > Submit</button>
</div>
<ng-content></ng-content>
<ng-content></ng-content>
<ng-content [data]='THIS IS THE DATA'></ng-content>
<p>The data we are looking for is {{data}} </p>

笔记本电脑
message.component.html

<div>

    <app-message> <h1>Laptop</h1></app-message>
</div>
<div>
    <ng-content></ng-content>
        <p>something text to be display</p>
        <button > Submit</button>
</div>
<div>
    <h1>Laptop</h1>
    <app-message> </app-message>
</div>
<div>
        <p>something text to be display</p>
        <button > Submit</button>
</div>
<ng-content></ng-content>
<ng-content></ng-content>
<ng-content [data]='THIS IS THE DATA'></ng-content>
<p>The data we are looking for is {{data}} </p>

要显示的文本

提交
使用
可以创建灵活的可重用组件

例如,自定义应用程序模式组件:

<div class="modal">
  <div class="modal-title">
    {{title}}
   </div>
  <div class="modal-body">
    <ng-content></ng-content>
  </div>
</div>

{{title}}
这是一个非常强大的功能,它只是您使用

软件工程的一个核心原则是代码重用(DRY)。通过这种方式,我们可以将与组件相关的所有逻辑捆绑到一个组件中,并将内容注入其中

这就像是在问问题

为什么不将CSS样式声明为内联而不是CSS类

这是可能的,但无法维持,我们已经超越了这一点


您的示例非常简单,但如果您想根据注入的逻辑更改样式或行为,它仍然很有用。

有一些情况是必要的,在简单的情况下可能不会,但当应用程序长大后,您必须在另一个应用程序中插入自定义组件时,这是非常有用的

,您可以从自己的示例中看到,如果不使用
ng content
,父组件会突然对子组件的布局承担部分责任。它很快就会变得凌乱,布局越快越复杂。

它对于在其他组件中显示组件非常有用,因此组件可以重用。例如,如果要在几页上显示某些文本,则调用该组件时,文本位于要在其上显示文本的其他组件的内部。它还可以用于显示不同的信息,但样式相同。例如

如果您的ng内容已包含该信息,则这是如何使用该信息的示例:

menu.component.html

<div>

    <app-message> <h1>Laptop</h1></app-message>
</div>
<div>
    <ng-content></ng-content>
        <p>something text to be display</p>
        <button > Submit</button>
</div>
<div>
    <h1>Laptop</h1>
    <app-message> </app-message>
</div>
<div>
        <p>something text to be display</p>
        <button > Submit</button>
</div>
<ng-content></ng-content>
<ng-content></ng-content>
<ng-content [data]='THIS IS THE DATA'></ng-content>
<p>The data we are looking for is {{data}} </p>
然后,我们将看到test.component.html如下所示:


<我们正在寻找的数据是数据

如果你想在组件模板中间显示一些内容,那该怎么办?