2016-07-17 2 views
0

Я пытаюсь выполнить некоторую очистку до изменения области, но я не могу получить доступ к $routeParams из scope в методе.

Вот метод

mainAngular.controller('TableController', function ($scope, $routeParams) { 
    $scope.$on('$destroy', function() { 
     console.log('I am calling leave, table '+ $routeParams.tableKey); 
    }); 
} 

Это выводит

I am calling leave, table undefined

Почему я не могу получить доступ к $routeParams в этом методе?

+0

$ routeParams доступна только в контроллерах, сконфигурированных с маршрутизацией URL. – Kalyan

+0

Попробуйте ввести «$ route» и проверьте, работает ли '$ route.current.params', или сохраните, если перед' var currParams; angular.copy (currParams, $ routeParams); 'и в случае уничтожения, вместо' currParams' вместо –

+0

@Kalyan Я могу получить доступ к $ routeParams в другой части контроллера. Я просто не могу получить доступ к нему внутри метода onDestroy –

ответ

0

Попробуйте так:

mainAngular.controller('TableController', function ($scope, $routeParams) { 
    var routeParams = $routeParams; 
    $scope.$on('$destroy', function() { 
     console.log('I am calling leave, table '+ routeParams.tableKey); 
    }); 
} 
+0

Это тоже не сработало. Но если я назначу конкретный параметр переменной, тогда он будет работать. 'var tableKey = $ routeParams.tableKey' –

+0

Ok. вы можете попробовать «var routeParams = angular.copy ($ routeParams)», если вы хотите, чтобы весь объект – Dvir

Смежные вопросы