0

У меня есть два контроллера в моем приложении TimelineController и ReservationModalController. Я хочу вызвать TimelineController из ReservationModalController и передать значение переменной. Я пытаюсь что: это мой app.jsУгловой параметр JS pass один контроллер к другому

$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

Возможно, вы должны $broadcast для связи между контроллерами здесь, чтобы они не были так тесно связаны друг с другом. $rootScope.$broadcast отправляет событие через область применения. Любые дети с этим приложением могут поймать его с помощью простого: $scope.$on().

Особенно полезно отправлять события, когда вы хотите достичь области, которая не является прямым родителем (например, два контроллера, для которых нет родителя для другого, например).

Там в скрипку, которая показывает, как это сделать: https://jsfiddle.net/VxafF/

+0

Ваш скрипт в моем браузере не работает. Также я знаю это решение, но я не хочу его использовать. – zuri

0

Вы также можете попробовать вложенности свой TimeLineController внутри ReservationModalController. Таким образом вы можете использовать $ scope наследование для связи между контроллерами.

Прочитайте это: http://www.angularjshub.com/examples/basics/nestedcontrollers/