我的应用程序TimelineController和ReservationModalController中有两个控制器。我想从ReservationModalController调用TimelineController并传递变量值。我正在努力: 这是我的app.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 :(得分:0)
可能你应该$broadcast
在这里的控制器之间进行通信,这样它们就不会彼此紧密联系。 $rootScope.$broadcast
正在通过应用程序范围发送事件。
该应用程序的任何子级范围都可以使用简单的$scope.$on()
来捕获它。
当您想要到达不是直接父节点的范围时发送事件特别有用(例如,两个控制器都不是另一个父节点的父节点)。
有一个小提示,说明如何执行此操作:https://jsfiddle.net/VxafF/
答案 1 :(得分:0)
您还可以尝试在ReservationModalController中嵌套TimeLineController。这样,您可以使用 $ scope 继承来在控制器之间进行通信。
阅读本文:http://www.angularjshub.com/examples/basics/nestedcontrollers/