我遇到了一些问题,我想设计一个像flex:1
和flex:2
那样切片的框架。
将框架分开并希望左侧组件的高度与右侧组件相同。(如果右侧高度小于左侧,左侧显示100%
)。
哈巴狗
.container(style='display:flex')
.leftside(style='flex:1')
some-component
.rightside(style='flex:4')
router-outlet
我之前实现了jquery,左侧组件完全渲染并且对scrollClient
进行了修改,因此我设置service(injectable)
并在router.event
获得navigatorEnd
时观察。
准确地说,我希望获得scrollheight
router-outlet
,但每次都会返回0
。
service.ts(导出工具服务)
private routerHeight:number;
constructor(private router: Router) {
this.router.events
.filter(event => event instanceof NavigationEnd)
.subscribe((event) => {
this.routerHeight = document.getElementsByTagName('router-outlet')[0].scrollHeight;
});
}
newheight(){ return this.routerHeight;}
一些-component.ts
constructor(private toolservice:Toolservice,private el:ElementRef){}
getNewHeight(){
this.el.nativeElement.height = this.toolservice.newheight();
}
答案 0 :(得分:2)
<router-outlet>
标签本身没有高度,它是一个占位符标签,内容放置在下面 - 而不是放在里面。除了奇怪而不是“有角度”的代码之外,你可以使用我想的nextElementSibling
属性:
this.routerHeight = document.getElementsByTagName('router-outlet')[0].nextElementSibling.scrollHeight;
答案 1 :(得分:1)
好吧,我想你可以将router-outlet
放在div
内并获得该{div}的scrollHeight
。
<div>
<router-outlet></router-outlet>
</div>