我正在尝试将sidenav集成到我的应用程序中,但它需要sidenav代码位于主app.component页面中,而实际上我只需要在一个组件中使用sidenav。
我有一个名为组合的变量。如果combos.length >=1
,我会显示sidenav。
这是我放在app.component.html中的代码:
<md-sidenav-layout>
<md-sidenav #IVCombos mode="side" *ngIf="result?.combos?.length >=1">
MY SIDENAV
</md-sidenav>
<!-- Routed views go here -->
<router-outlet></router-outlet>
</md-sidenav-layout>
如您所见,内容包含在sidenav中。一个用户将一些数据放在我的一个路由器组件的输入上,combos
变量会发生变化。
由于此变量是路由器组件的实例,而不是我的app.component.ts,因为我的HTML中没有显示sidenav。
我的问题是:
从我的app.component.ts访问我的组件combos
变量的最佳方法是什么?
在这种情况下是否需要为一个变量创建服务?
答案 0 :(得分:0)
我认为最好的选择是使用共享服务。此外,在这种情况下也可以使用商店,但在您的情况下则没有必要。
共享服务(在共享模块中):
只需将您的数据存储为服务类属性即可。
<强>缺点:强>
Ngrx商店(如Redux):
您可以使用ngrx商店概念 - https://github.com/ngrx/store。
<强>优点:强>