将视图从组件传递到其他组件

时间:2019-08-21 13:26:27

标签: angular components

我一直试图进入Angular(来自.NET MVC 5)。到目前为止,我对Angular非常满意,我喜欢Angular的工作原理,但是我无法弄清楚如何解决.NET Razor中相当容易解决的以下问题。

通过路由器出口,我所有的组件都是LayoutModule的子组件。该模块包含带有实际侧栏和顶部栏的视图(基本引导管理模板)。我想要实现的是每个子组件/页面都有不同的侧边栏内容。

在Razor中,我可以简单地在主模板中定义一个部分,在每个视图中,使用包含该部分的模板,我可以简单地键入@section sidebar{ RenderPartial(...) }

我试图在Angular中查找有关此概念的内容,但我觉得Google用完了条款。

TLDR;我试图让组件将一段HTML(或一个组件)传递到布局的侧边栏。

推荐任何提示。

2 个答案:

答案 0 :(得分:0)

您可以为边栏创建一个组件,并将@Input()属性用于特定内容。

在父视图中:

 <app-sidebar [content]="content">

在侧边栏组件中:

@Input() content : any;

在侧边栏视图中,您可以访问由父组件发送的特定内容。

答案 1 :(得分:0)

我想您会发现multiple named router outlets很方便。基本上,您可以为主视图和路径配置中的边栏定义一个单独的组件。

  

模板也可以具有任意数量的命名出口。每个命名的出口都有自己的路线和组件。多个商店可以同时显示由不同路线决定的不同内容。