0

我的应用程序TimelineController和ReservationModalController中有两个控制器。我想从ReservationModalController调用TimelineController并传递变量值。我想的是: 这是我app.jsAngular JS将参数一个控制器传递给另一个

$stateProvider 
// Timeline 
    .state('timeline', { 

    url: '/timeline', 
    controller: 'TimelineController', 
    templateUrl: 'assets/partials/timeline.html', 
    params: { 
     operation: 'false' 
    } 

}) 

这是TimelineController

$scope.operation = $state.current.params.operation; 

,这是ReservationModalController:

$scope.edit = function() { 
    $modalInstance.close(); 
    $state.go('timeline', { 
    operation: 'true' 
    }); 
}; 

在第一时间变量初始化。但是当我点击按钮和ReservationModalController并且它的方法edit被称为TimelineController并且它的变量$scope.operation不会更改。

请帮我解决了什么问题?

+0

看看这个:http://stackoverflow.com/questions/24842597/angular-controller-communication-with-a-service我猜你想你的控制器是能够相互交谈。 –

+0

我知道这个解决方案,但在我的情况下,我不想使用这个。在角度我可以使用$ state.go()函数,但不工作,所以我很有趣,为什么? – zuri

回答

0

很可能,您应该在这里的控制器之间进行通信,因此它们并不像彼此紧密相连。 $rootScope.$broadcast正在通过应用程序范围发送一个事件。 该应用程序的任何子范围都可以使用简单的:$scope.$on()来捕捉它。

当您想要到达不是直接父级的作用域时发送事件(例如其中的两个控制器不是其他父级的父级),这一点尤其有用。

有一个小提琴,显示如何做到这一点:https://jsfiddle.net/VxafF/

+0

我的浏览器中的脚本无法正常工作。我也知道这个解决方案,但我不想使用它。 – zuri

相关问题