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