Angularjs 将参数传递到角度指令控制器

Angularjs 将参数传递到角度指令控制器,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我有一个控制器,其中注入了一些自定义UI路由器解析参数: uxgroups.controller('UXGroupStepCtrl', ['$scope', '$rootScope', '$stateParams', 'stepData', function ($scope, $rootScope, $stateParams, stepData) { 但当在指令中使用此控制器时,我得到的错误是stepData未定义: angular.js:14682 Error: [$injector:unp

我有一个控制器,其中注入了一些自定义UI路由器解析参数:

uxgroups.controller('UXGroupStepCtrl', ['$scope', '$rootScope', '$stateParams', 'stepData', function ($scope, $rootScope, $stateParams, stepData) {
但当在指令中使用此控制器时,我得到的错误是stepData未定义:

angular.js:14682 Error: [$injector:unpr] http://errors.angularjs.org/1.5.8/$injector/unpr?p0=stepDataProvider%20%3C-%20stepData%20%3C-%20UXGroupStepCtrl%20%3C-%20UXGroupStepCtrl
即:

Unknown provider: stepDataProvider <- stepData <- UXGroupStepCtrl <- UXGroupStepCtrl

有没有办法取消或定义我的指令控制器中的额外参数?

这样的指令不能将数据传递给控制器。但是控制器的作用域与指令的作用域相同。因此,您可以在指令中设置$scope变量,并在控制器中引用它

app.directive('passProcess', function (stepData) {
return {
    restrict: 'E',
    controller: 'UXGroupStepCtrl',
    scope: { p: '=' },
    templateUrl: '/App/Modules/UXGroup/Views/process.html'
};
});
uxgroups.controller('UXGroupStepCtrl', ['$scope', '$rootScope', '$stateParams',
 function ($scope, $rootScope, $stateParams) {
    $scope.variable = $scope.p
}

刚刚发现了另一个问题
这表明这是不可能的,最好的方法是为指令制作一个单独的控制器

I编辑的问题,如果您遵循错误消息链接,错误是明显的
未知提供程序:stepDataProvider谢谢,虽然我不知道如何解决这个错误,但您可能不经常在脚本标记中包含
stepData
的lib。不,它不是脚本中定义的库,它指的是在ui路由器上的resolve语句中传递的数据。我不尝试将数据从指令传递到控制器,我有一个解析项从UI路由器传递到我的控制器,它在directive中使用时会导致错误。您的指令应该有一个单独的控制器,以便可以正确配置它。
app.directive('passProcess', function (stepData) {
return {
    restrict: 'E',
    controller: 'UXGroupStepCtrl',
    scope: { p: '=' },
    templateUrl: '/App/Modules/UXGroup/Views/process.html'
};
});
uxgroups.controller('UXGroupStepCtrl', ['$scope', '$rootScope', '$stateParams',
 function ($scope, $rootScope, $stateParams) {
    $scope.variable = $scope.p
}