javascript - Angular,将来自组件的输入注入(inject)我的标题

标签 javascript angular components inject ng-content

我希望我的 Pages 将来自其他 Pages/Components 的不同组件单独注入(inject)到 header 中。例如,我想从我的 content-component 中注入(inject)一个 Input 搜索字段到我的 header 组件中。我尝试使用 ng-Content,但这只会在我的 HTML 中复制我的 header。问题是我的 header 不在每个 Component 中,而是在我的 app.component 中。

我的页眉组件:

<div class="header__sub">
<div class="header__title header__title--sub">
    <h2 class="title title--medium">{{ subtitle }}</h2>
</div>
<div class="header__search">
    <!-- Here should be my Input field -->
    <ng-content></ng-content>
</div>

I want to inject the input field 的组件:

<app-header>
   <mat-form-field>
        <input matInput (keyup)="applyFilter($event.target.value)" placeholder="Search" />
   </mat-form-field>
</app-header>  
 ....

App-Component.html:

<mat-drawer-content>
    // The header
    <app-header-sub>
    </app-header-sub>
    <div class="content__inner">
        // My Content
        <router-outlet></router-outlet>
    </div>
</mat-drawer-content>

我如何从每个组件中分别向 header 中注入(inject)不同的标签(具有功能)?

最佳答案

你可以这样使用它:

子组件

<div class="header">
  <ng-content select="[name]"></ng-content>
<div>

父组件

<app-header>
  <div name>Hello World</div>
</app-header>

演示供您引用:https://stackblitz.com/edit/ng-content-select-attribute

或者看这里:Multiple ng-content

关于javascript - Angular,将来自组件的输入注入(inject)我的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59631408/

相关文章:

javascript - 创建随机生成的 div 来填充一个框 jQuery 和 Javascript

javascript - 使用正则表达式测试密码

javascript - 将带有单引号的字符串从 MVC Razor 传递到 JavaScript

angular - 在 router.events 中获取事件路由数据

javascript - 无法从路由访问组件

javascript - 我的模板中有 VueJS : How do I use data from main. js 吗?

javascript - PureComponent 与无状态功能组件的性能对比

javascript - 属性模板中的 Angular 字符串插值

javascript - 动态加载现有组件 Angular 2 Final Release

javascript - 如何加载 Vue 库一次并在任何组件中使用