我懒加载此功能模块。它有不同的路由,第一个是默认路由。由于我需要为此功能模块设置菜单,我尝试使用模块构造函数。
它工作正常,但使用模块设置数据在语义上是否正确?我没有看到有人使用相同方法的任何例子。
import {NgModule} from '@angular/core';
import {Routes, RouterModule} from '@angular/router';
import {OverviewComponent} from "@app/$/main/overview.component";
import {DetailComponent} from "@app/$/main/overview.component";
import {MenuService} from "@app/scheme/desk/menu/menu.service";
export const routes:Routes = [
{
path: "",
redirectTo: "overview"
},
{
path: "overview",
component : OverviewComponent,
},
{
path: "detail",
component : DetailComponent
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
declarations: [OverviewComponent, DetailComponent],
exports: [RouterModule]
})
export class DeskModule {
constructor(private menuService:MenuService){
this.menuService.items = [{
label: 'Overview',
},
{
label: 'Detail',
}];
}
}
答案 0 :(得分:4)
无论是Angular还是其他任何语言的类,问题
但是使用模块设置数据在语义上是否正确?
适用于任何课程。
现在是一个Angular模块
然后问题归结为
类是否应该在构造函数中设置其数据?
构造函数的一般最佳实践是执行对象所需的最小设置,以便更轻松地执行繁重的工作,例如与外部资源交互。
因此,只要您的“数据设置”非常私密且轻量级,您就不应该执行此初始化IMO。这只是在模块级别不进行数据初始化的一种情况。