Angular route解析不会传递给控制器

时间:2015-06-26 11:15:27

标签: angularjs

由于某些原因,无论我做什么,我无法将数据传送给控制器,无论我做什么,我都会收到此错误

错误:[$ injector:unpr]未知提供者:initDataProvider< - initData< - PackingScanController

第一个文件

var Application = angular.module('ReporterApplication', ['ngRoute']);


Application.config(['$routeProvider', '$interpolateProvider',

    function($routeProvider, $interpolateProvider) {

        $interpolateProvider.startSymbol('<%');
        $interpolateProvider.endSymbol('%>');

        $routeProvider

            .when('/packing/scan.html', {
                controller: 'PackingScanController',
                templateUrl: 'packing/scan.html',
                resolve: {

                    initData : function () {
                        return "shite";
                    }


                }
            }) etc more code

第二档

Application.controller('PackingScanController', ['$scope', '$http', 'initData', function($scope, $http, initData) {

    var packer = this;

    $scope.packedToday = initData;

1 个答案:

答案 0 :(得分:1)

发布的代码没问题,您正在使用解析路由块正确注入initData。但是,您可能在路由模板中使用显式ngController。您不需要它,当然在这种情况下,没有initData服务可用,这会导致您获得错误。

解决方案很简单:只需删除

即可
ng-controller="PackingScanController" 

来自您的packing/scan.html模板,它可以正常使用。

在这种情况下不需要显式控制器绑定,因为模板已经被$route服务正确绑定到场景后面创建的控制器实例,并且正确地注入了所有必需的依赖项。