如何将数据传递给Angular js中的其他控制器?

时间:2016-09-12 10:35:29

标签: angularjs

我有2个控制器,我想要接下来的事情: 当我点击controllerOne中的项目时,它应该在controllerTwo中突出显示具有相同ID的元素。 我有突出显示方法但是如何将带有ID的事件从controllerOne发送到controllerTwo ??

3 个答案:

答案 0 :(得分:1)

将共享数据保存在可从两个控制器访问的服务中,请参阅https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md#defer-controller-logic-to-services

答案 1 :(得分:0)

使用$route在网址中传递变量:

/controller2route/:action/:id

例如:

/details/highlight/2

然后,您可以使用ifs和开关调用相应的函数,例如上面的URL的高亮显示(2)。

https://docs.angularjs.org/api/ngRoute/service/ $路线

答案 2 :(得分:0)

您可以在路由中路由参数。

路由

app.config(function($routeProvider) {
    $routeProvider
    .when("/users/:userId", {
        templateUrl : "main.htm",
        controller:"controllerTwo "
    })
})

并在controllerTwo中使用$ routeParams来获取用户ID。

app.controller('controllerTwo',function($scope,$routeParams){
  var userId = $routeParams.userId;
})

一个更好的解决方案是使用服务。链接在这里 https://thinkster.io/a-better-way-to-learn-angularjs/services