【发布时间】:2020-05-10 23:56:29
【问题描述】:
我正在创建一个组件,我想将其用作另一个组件中的子组件,但也用作独立视图。
例如,组件ViewCarsComponent 将列表SmallCarsListComponent 和用于查看Car 对象详细信息的面板CarDetailComponent 配对。当从列表中选择一个项目时,该项目的Car 对象将通过@Input 提供给详细信息面板,并且面板会更新。但是,当我导航到 /cars/small/20 时,我想单独显示详细信息面板以及 ID 为 20 的 Car 的详细信息。因此,这个组件可以采用由兄弟列表组件提供的 Car 对象通过@Input 或 number 作为 URL 参数,然后它可以用来进行自己的查询。
有没有更好的方法来做到这一点?是否有一些我应该编写的中间件可以检索与作为 URL 参数提供的 ID 对应的Car,然后将其交给CarDetailComponent,因此所述组件永远不需要对Car 对象提出请求本身?是否应该制作两个独立的组件,一个是为@Input 设计的,一个是为 URL 参数设计的?
【问题讨论】:
-
我会对“最佳实践解决方案”感兴趣....我的想法,希望他们有所帮助:我可能会删除输入,创建路由并添加
代替 作为子组件并让组件加载数据(您希望向后端发出小数据请求的 9/10 倍,它还将数据保留在不需要的父级之外)。选项?;服务层可以运行这两个选项,但是..您只是以不同的方式剥马皮。 (s 层持有 id 或数据,无需将参数传递给组件。但会依赖某个级别的父级来填充数据。
标签: angular angular2-routing url-parameters angular-input