Angularjs 以角度动态加载路线的最简单方法是什么?

Angularjs 以角度动态加载路线的最简单方法是什么?,angularjs,Angularjs,我正在构建一个angular应用程序,我试图实现的是拥有一个对象数组,在其中我将保留每个模块的基本信息url、控制器名称,这样我就可以有一个用于初始化的单一服务,它会在每个路由上被不同的url调用,以通过ajax调用获取服务器数据,因此在加载时,每个控制器中都有相应的可用数据 返回时出现了一个非常严重的错误: modules = [{ name: Scan, url: packing/scan, controllerName : packer }]; var Application

我正在构建一个angular应用程序,我试图实现的是拥有一个对象数组,在其中我将保留每个模块的基本信息url、控制器名称,这样我就可以有一个用于初始化的单一服务,它会在每个路由上被不同的url调用,以通过ajax调用获取服务器数据,因此在加载时,每个控制器中都有相应的可用数据

返回时出现了一个非常严重的错误:

modules = [{
  name: Scan,
  url: packing/scan,
  controllerName : packer
}];

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

/**
 * Handles the initialization by fetching server data on module run
 */

Application.service('Initialize', ['$http', function($http)
{

    this.serverData = function(route) 
    {
        return $http.get(route + '.action')
            .then(function(response)
            {                         
                return response.data;
            });

    };

}])


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

    function($routeProvider, $interpolateProvider) {

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



        for (var i=0; i < 1; i++) {
            var index = i; // for some weird reason i is 1 by the time initData is run
            $routeProvider.when('/' + modules[i].url + '.html', {
                templateUrl: modules[i].url + '.html',
                controller: modules[i].name + 'Controller' + ' as ' + modules[i].controllerName,
                resolve: {
                  initData : ['Initialize', function(Initialize) {
                    return Initialize.serverData('/' + modules[index].url)
                  }] 
                }

            })
        };   etc more code 
这让我很震惊


错误:[$injector:unpr]未知提供程序:initDataProvider运行when循环意味着什么?显示您需要执行的服务不返回任何内容…为什么其中有返回语句?好吧,您的理论是否有效?您是否尝试过任何无效的方法,如果尝试过,您能否详细说明实际结果与您预期的结果相比如何?我们看不到您的屏幕,因此您必须告诉我们具体情况检查我所做的编辑
Application.controller('ScanController', ['$scope', '$http', 'initData', function($scope, $http, initData) {

    var packer = this;

    packer.initData = initData;
    packer.packedToday = initData.ordersPackedToday; etc more code