Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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
Angularjs Angular 1.5组件路由器$canActivate:在没有数据的情况下访问下一条路由并重新路由_Angularjs_Angular Component Router - Fatal编程技术网

Angularjs Angular 1.5组件路由器$canActivate:在没有数据的情况下访问下一条路由并重新路由

Angularjs Angular 1.5组件路由器$canActivate:在没有数据的情况下访问下一条路由并重新路由,angularjs,angular-component-router,Angularjs,Angular Component Router,事实上,我对$canActivate有三个问题(请参阅下面的代码以更好地理解这些问题): 单击 您可以在$canActivate钩子中插入$nextInstruction,然后可以通过$nextInstruction.params访问您的参数 function canActivate($nextInstruction, $q, $rootRouter, machineDetailsService) { const machineId = $nextInstruction.params.id;

事实上,我对$canActivate有三个问题(请参阅下面的代码以更好地理解这些问题):

  • 单击
    
    
  • 您可以在
    $canActivate
    钩子中插入
    $nextInstruction
    ,然后可以通过
    $nextInstruction.params
    访问您的参数

    function canActivate($nextInstruction, $q, $rootRouter, machineDetailsService) {
      const machineId = $nextInstruction.params.id;
    }
    
  • 我遇到了同样的问题,但找不到任何解决方案将数据从
    $canActivate
    钩子传递到控制器

  • 您可以通过
    $rootRouter导航到
    ListView
    。导航(['/ListView'])
    。注意正斜杠。需要指定,因为您的
    ListView
    不是子路由

  • Re#2我找到了一种方法,但感觉很粗糙:controller和canActivate都可以访问MachinedDetailsComponent(组件定义对象),因此可以将其用作共享范围。。。
    function canActivate($nextInstruction, $q, $rootRouter, machineDetailsService) {
      const machineId = $nextInstruction.params.id;
    }