Angular Angualr2如何将数据从一个控制器发送到另一个控制器,而不需要像$state.go()这样的url参数
我试图将参数从一个控制器传递到另一个控制器,但我不想传入我试图传递的url(需要隐藏)Angular Angualr2如何将数据从一个控制器发送到另一个控制器,而不需要像$state.go()这样的url参数,angular,typescript,angular2-routing,Angular,Typescript,Angular2 Routing,我试图将参数从一个控制器传递到另一个控制器,但我不想传入我试图传递的url(需要隐藏) this.router.navigate(['/collections/'+this.name], {id: this.id}); 但在另一个控制器上,我无法访问它,我也尝试了 { path: 'collection/:city', component: Component, data : {id : null} } 但在这里,我如何动态传递id,因为在
this.router.navigate(['/collections/'+this.name], {id: this.id});
但在另一个控制器上,我无法访问它,我也尝试了
{
path: 'collection/:city',
component: Component,
data : {id : null}
}
但在这里,我如何动态传递id,因为在路由文件中,我没有id值,它可以从组件传递
在angulajs1.5中,我们使用params散列从url隐藏id
$state.go('collection', {id: 10})
state('collection', {
url : '/collection',
params : {
id : null,
},
templateUrl : templatesDir + 'collection.html',
controller : 'collectionController',
})
那么在angularjs2中也有同样的方法吗
谢谢为了在控制器之间共享数据,您可以将其存储在工厂/服务中。工厂可以保存数据,因为它是单例对象(仅在刷新之前) 存储在工厂中的最佳实践是使用getter/setter对象 通过此链接了解其他方法
您需要创建singleton对象,以便在多个组件之间共享它
这两种方式。与数据共享无关,我想以隐藏方式传递一些参数,而不是url。当我们使用$state.go('collection',{id:10})#。