Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular Angualr2如何将数据从一个控制器发送到另一个控制器,而不需要像$state.go()这样的url参数_Angular_Typescript_Angular2 Routing - Fatal编程技术网

Angular Angualr2如何将数据从一个控制器发送到另一个控制器,而不需要像$state.go()这样的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,因为在

我试图将参数从一个控制器传递到另一个控制器,但我不想传入我试图传递的url(需要隐藏)

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对象,以便在多个组件之间共享它

  • 作为服务使用@喷油器处于角度2。
  • 在一个类中创建并在另一个类中使用类名访问它们

  • 这两种方式。

    与数据共享无关,我想以隐藏方式传递一些参数,而不是url。当我们使用$state.go('collection',{id:10})#。