以下是内容投影的基本使用方法:
1. 子组件中的投影点: 在子组件的模板中,使用 <ng-content></ng-content> 标签作为投影点,表示父组件的内容将插入到这个位置。
// 子组件
@Component({
selector: 'app-child',
template: `
<div>
<h2>Child Component</h2>
<ng-content></ng-content> <!-- 投影点 -->
</div>
`
})
export class ChildComponent { }
2. 父组件中的使用: 在父组件的模板中,将需要投影的内容包裹在子组件的标签中。
// 父组件
@Component({
selector: 'app-parent',
template: `
<app-child>
<p>This content will be projected into the child component.</p>
<span>Another projected content.</span>
</app-child>
`
})
export class ParentComponent { }
在这个例子中,<p> 和 <span> 中的内容将被投影到 <ng-content></ng-content> 所在的位置,替代了子组件中的投影点。
内容投影的优势在于可以更好地封装组件,并且使组件的结构更加灵活。你可以通过 ng-content 的选择器来选择特定的投影内容,以实现更精细的控制。例如:
// 子组件
@Component({
selector: 'app-child',
template: `
<div>
<h2>Child Component</h2>
<ng-content select="p"></ng-content> <!-- 只投影p标签 -->
</div>
`
})
export class ChildComponent { }
// 父组件
@Component({
selector: 'app-parent',
template: `
<app-child>
<p>This content will be projected into the child component.</p>
<span>This won't be projected.</span>
</app-child>
`
})
export class ParentComponent { }
在这个例子中,只有 <p> 中的内容被投影到子组件,而 <span> 中的内容被忽略。
转载请注明出处:http://www.pingtaimeng.com/article/detail/4915/Angular