0
我有一个角度2的组件,它表示一个简单的控件。它有一个身体和一个页脚。该控件的用户只与<my-control>
组件交互,该组件将大量属性传递给<the-body>
和<the-footer>
。基于父属性更改角度分量的位置
selector: 'my-control',
template: `
<the-body
[bodyProp1]="bodyProp1"
[bodyProp2]="bodyProp2">
</the-body>
<the-footer
[footerProp1]="footerProp1"
[footerProp2]="footerProp2">
</the-footer>`
我希望能够将属性添加到<my-control>
这使上述<the-body>
页脚,而不是在它下面。我可以做这样的事情:
selector: 'my-control',
template: `
<the-footer
*ngIf="footerPosition === 'top'"
[footerProp1]="footerProp1"
[footerProp2]="footerProp2">
<the-body
[bodyProp1]="bodyProp1"
[bodyProp2]="bodyProp2">
</the-body>
<the-footer
*ngIf="footerPosition === 'bottom'"
[footerProp1]="footerProp1"
[footerProp2]="footerProp2">
</the-footer>`
但我不希望有在顶部再次重复整个<the-footer>
组件。在真实代码中有很多属性,保持两个<the-footer>
组件完全同步是一个维护问题。
除了用CSS position
值搞乱之外,有没有一种方法可以根据footerPosition
属性的值告诉角度重新定位<the-footer>
组件?
不幸的是,这并不能真正解决问题。我之前可能没有说清楚,但许多属性都通过父项传递到页脚(我更新了原始文章以使其更清晰)。所以你最终不得不将所有相同的属性从父项传递到''中,这是同样的问题。 –
d512