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 角度重定向到包含数据的其他模板_Angularjs_Angular Routing - Fatal编程技术网

Angularjs 角度重定向到包含数据的其他模板

Angularjs 角度重定向到包含数据的其他模板,angularjs,angular-routing,Angularjs,Angular Routing,我有两个控制器,如下所示 .when('/list_persons', { templateUrl: 'views/list_persons.html', controller: 'topBarController', activetab: 'list_persons' }) .when('/register_person', { templateUrl: 'views/register_person.html',

我有两个控制器,如下所示

   .when('/list_persons', {
      templateUrl: 'views/list_persons.html',
      controller: 'topBarController',
      activetab: 'list_persons'
    })
    .when('/register_person', {
      templateUrl: 'views/register_person.html',
      controller: 'topBarController',
      activetab: 'register_person'
    })
在/list_persons视图中,我有一个带有person的表。在表中,我想创建一个图标来编辑一个人。当用户单击此图标时,我想重定向到/register\u person视图。我还想向重定向(要编辑的人)添加一些数据。我怎样才能做到这一点


编辑:tobarController只负责根据您所在的侧面突出显示标题中的元素。这些模板上还有其他控制器在执行主要工作

您可以使用routeParams进行此操作。只需将要编辑的人的id添加到路径中,并按如下方式更改路线:

 .when('/list_persons/:personId', {
  templateUrl: 'views/list_persons.html',
  controller: 'topBarController',
  activetab: 'list_persons'
})
然后,在您的
topBarController
中,您可以插入
$routeParams
-服务,该服务将包含personId:

[...].controller('topBarController', function($scope, $routeParams){
    $scope.personId = $routeParams.personId;
}

如果您将所有人员存储在服务或其他内容中,只需通过id即可轻松检索要编辑的人员。

谢谢。因此,当我有personId时,我将不得不再次从db获取人员?不。通常,您不应该在控制器内获取人员。Angular中的控制器用于将示波器与逻辑连接起来。逻辑本身更好地存储在服务中。服务是单例的,因此无论您在何处注入它们,它们都是相同的对象。因此,获取服务中的人员列表并将其存储在那里。然后,您可以在两个控制器中插入该服务,并通过ID再次抓取要编辑的人。是的,按照这里的建议,创建一个包含您与服务器通信以及存储和搜索它返回的数据的逻辑的服务,然后,这可以被注入到任何需要处理XYZ类型数据的控制器中(使每种类型的数据都有一个服务,一个用于用户,一个用于产品等),如果您遇到服务需要告诉彼此要做什么的问题,您可以创建一个“桥梁”服务来在两者之间进行通信(为了避免循环依赖)谢谢。我已经在一个服务中有了它们,所以我将与大家分享。