如何在自定义指令中获取$ routeParams

Ang*_*eno 1 angularjs angularjs-directive

我正在创建一个navBar指令,我想使用$ routeParams来确定要设置为活动的链接.我可以在控制器中访问$ routeParams而没有问题:

app.controller('MovieDetailsController', ['$scope', '$http', '$routeParams', function ($scope, $http, $routeParams) {
        $scope.movie = {};
        console.log($routeParams);
    }]);
Run Code Online (Sandbox Code Playgroud)

但是,我无法从我的指令中的$ routeParams获取任何数据:

app.directive('navBar', ['$routeParams', function ($routeParams) {
        console.log($routeParams);
    }]);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

tha*_*ha4 6

似乎指令初始化时$ routeParams不可用.如果您使用如下所示的指令,那么它应该可以工作.

app.directive('myDir', ['$routeParams', function ($routeParams) {
    return {
      restrict: 'A',
      link: function(scope, element, attrs) {
        element.bind('click', function() {
          alert($routeParams.number);
        });
      }
    }
  }]);
Run Code Online (Sandbox Code Playgroud)

http://plnkr.co/edit/joHLLqtsUK3xCAVemmeg?p=preview