我已经分享了“英雄之旅”以试图说明这篇文章。我希望英雄有“配饰”:
https://embed.plnkr.co/Q12h1BUUi19CPWiwbA9q/
从plnkr,配件看起来像这样:
export interface Accessory {
id: number;
name: string;
}
在mock-heroes.ts
中,我为英雄添加了一些有用的配件:
export var HEROES: Hero[] = [
{"id": 11, "name": "Mr. Nice", "accessories": [
{"id": 954, "name": "Gift"}
]},
{"id": 12, "name": "Narco", "accessories": [
{"id": 1843: "name": "Syringe"}
]},
{"id": 13, "name": "Bombasto", "accessories": [
{"id": 1452, "name": "panties"}
]},
{"id": 14, "name": "Celeritas", "accessories": [
{"id": 453, "name": "Sun glasses"}
]},
{"id": 15, "name": "Magneta", "accessories": [
{"id": 18, "name": "Magnet"},
{"id": 343, "name": "Iron"}
]},
{"id": 16, "name": "RubberMan", "accessories": [
{"id": 86, "name": "Rubber"},
{"id": 453, "name": "Sun glasses"}
]},
{"id": 17, "name": "Dynama", "accessories": [
{"id": 1452, "name": "Panties"}
]},
{"id": 18, "name": "Dr IQ", "accessories": [
{"id": 1001, "name": "Brain"}
]},
{"id": 19, "name": "Magma", "accessories": [
{"id": 89, "name": "Plutonium"}
]},
{"id": 20, "name": "Tornado", "accessories": [
{"id": 10, "name": "Blowhole"},
{"id": 45, "name": "Fan"}
]}
];
这是一种非常简单但天真的方式来增加我的英雄配件(我猜)。
首先,我的直觉说Hero和Accessory都是两个独立的功能块,因此它们应该在他们自己的ngModule中声明,以及他们自己的指令,组件,服务等。
所以我正在考虑将应用程序构建为三个不同的模块: AppModule(根),HeroModule,AccessoryModule
如果分离逻辑统治英雄和管理附件的逻辑,那么我应该如何创建一个英雄和他的配件之间的关系?
我不能像上面那样用他们的配件来模仿英雄:
export var HEROES: Hero[] = [
{"id": 11, "name": "Mr. Nice",
"accessories": [
{"id": 954, "name": "Gift"} this module
] // <- accessories will not be part of
},
不是将配件立即存放在英雄中,我可以参考配件。从这些参考资料中,我可以通过专用的AccessoryService获取附件。 mock-heroes.ts看起来像这样:
export var HEROES: Hero[] = [
{"id": 11, "name": "Mr. Nice", "accessories": [954, 1335] },
我不确定这里最好的选择是什么?将两个实体分成他们自己独特的ngModule是否真的有意义,如果是这样,如何正确地建立英雄和他们的配件之间的关系。
我知道这个问题可能非常广泛,但我希望能找到一些帮助。
最佳, 迈克尔