Open
Description
ng-content
是什么?
它是一个插槽,可以把父组件的dom元素传递到子组件中。相当于vue里的slot
。
如何使用
直接传递小示例
父组件有一段文本'可爱的小猫',传入子组件中
父组件ts
@Component({
selector: 'parent',
template: `
<son> <p>可爱的小猫</p> </son>
`,
})
子组件ts
@Component({
selector: 'son',
template: `
<ng-content></ng-content>
`,
})
子组件html会以此渲染:
@Component({
selector: 'son',
template: `
<p>可爱的小猫</p>
`,
})
<ng-content></ng-content>
是一个插槽,把<p>可爱的小猫</p>
插入了它占的位置。
其他用法
其实和 querySelector 选取dom用法差不多。
1. 通过节点匹配
@Component({ // 父组件ts
selector: 'parent',
template: `
<son> <p cat>可爱的小猫</p> </son>
`,
})
@Component({ //子组件ts
selector: 'son',
template: `
<ng-content select='p'></ng-content>
`,
})
2. 通过属性值匹配
@Component({ // 父组件ts
selector: 'parent',
template: `
<son> <p cat>可爱的小猫</p> </son>
`,
})
@Component({ //子组件ts
selector: 'son',
template: `
<ng-content select='[cat]'></ng-content>
`,
})
3. 通过class匹配
@Component({ // 父组件ts
selector: 'parent',
template: `
<son> <p class="cat">可爱的小猫</p> </son>
`,
})
@Component({ //子组件ts
selector: 'son',
template: `
<ng-content select='.cat'></ng-content>
`,
})
4. 通过id匹配
@Component({ // 父组件ts
selector: 'parent',
template: `
<son> <p id="cat">可爱的小猫</p> </son>
`,
})
@Component({ //子组件ts
selector: 'son',
template: `
<ng-content select='#cat'></ng-content>
`,
})
Metadata
Metadata
Assignees
Labels
No labels