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