0

我的应用程序 TimelineController 和 ReservationModalController 中有两个控制器。我想从 ReservationModalController 调用 TimelineController 并传递变量值。我正在尝试:这是我的 app.js

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

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

})

这是时间线控制器

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

这是 ReservationModalController :

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

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

请帮助我有什么问题?

4

2 回答 2

0

您也可以尝试将 TimeLineController 嵌套在 ReservationModalController 中。这样您就可以使用$scope继承在控制器之间进行通信。

阅读:http ://www.angularjshub.com/examples/basics/nestedcontrollers/

于 2016-02-01T21:11:07.763 回答
0

可能,您应该$broadcast在这里的控制器之间进行通信,这样它们就不会那么紧密地绑定在一起。$rootScope.$broadcast正在通过应用程序范围发送事件。该应用程序的任何子范围都可以使用简单的:$scope.$on().

当您想要到达不是直接父级的范围时发送事件特别有用(例如,其中两个控制器不是另一个的父级)。

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

于 2016-02-01T21:01:02.627 回答