我正在构建一个角度应用程序,我想要完成的是有一个对象数组,我将保留每个模块的基本信息(网址,控制器名称),所以我将有一个服务对于初始化,它将在每个路由上使用不同的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
scan.js
Application.controller('ScanController', ['$scope', '$http', 'initData', function($scope, $http, initData) {
var packer = this;
packer.initData = initData;
packer.packedToday = initData.ordersPackedToday; etc more code
这就抛弃了我
错误:[$ injector:unpr]未知提供者:initDataProvider&lt; - initData&lt; - ScanController
更新:解决了那个,但现在似乎控制器没有加载数据
更新:解决了这个问题。一切似乎都有效,而且我是最好的:D