正如Angular文档中所述,一些参数可通过名为ActivatedRoute的注入路由器服务获得。其中有数据属性。
我知道我可以使用Resolver guard将数据传递给该属性,但我想了解其他选项,例如使用routerLink或router.navigate传递数据属性。
有时,当您不希望params成为位置栏上URL的一部分时,它不是使用params传递数据的权利。
我实际上要做的是将参数从router.navigate传递给CanDeactivate后卫,这样当param存在时它会有不同的行为,但我不希望它在位置栏上显示,我不能使用属于活动组件的属性。
答案 0 :(得分:0)
路由时,不应将数据从组件传递到另一个组件。
此外,必须在路由中声明传递此类数据,这意味着它会锁定数据,因此您无法更改它。
现在的答案,它在很大程度上取决于您想要传递的数据类型。
例如,如果您要求文章的详细信息,那么您只需在URL中传递文章ID即可。
如果要共享配置对象,则可以使用服务将数据从一个组件共享到另一个组件。
如果您使用父子组件,则可以使用`Route::get('/tours/create', 'ToursController@create');`
和@Input
在它们之间共享数据。
如果你想要一个正确的答案,你应该给我们你的目的和一些背景,因为没有完美答案或没有最佳答案,只有适合案件的可接受答案。