我有一个js文件routeLoader.js
var routeLoader = {
routeData: {},
myLoader: function () {
jQuery.support.cors = true;
$.ajax({
url: 'http://localhost:61362/api/menu/getmenus/emptyString',
type: 'GET',
dataType: 'json',
success: function (data) {
routeLoader.routeData = data;
return data;
},
error: function (x, y, z) {
alert(x + '\n' + y + '\n' + z);
}
});
}
};
在我的adminModule.js文件中,我有以下内容:
var dependencies = ['scripts/Angular/angular-route', 'utils/routeResolver'];
define(dependencies, function (ngRoute, Resolver) {
'use strict';
var adminModule = angular.module('app.adminModule', ['ngRoute', 'routeResolverServices']);
adminModule.config(['$routeProvider', 'routeResolverProvider', '$controllerProvider', '$provide',
function ($routeProvider, routeResolverProvider, $constrollerProvider, $provide) {
adminModule.lazyRegister = {
controller: $constrollerProvider.register,
factory: $provide.factory
};
var rpRoute = routeResolverProvider.route;
try {
routeLoader.routeData.forEach(function (route) {
$routeProvider
.when(route.menuName, rpRoute.resolve(route.viewDirectory, route.controllerDirectory, route.baseName, route.path))
});
} catch (e) {
alert(e.message);
}
}
]);
return adminModule;
});
当在Chrome和IE中运行F12 Dev Tools时,routeLoader.routeData包含一个JSON数据数组,这是所需的结果。没有运行F12 Dev Tools,routeLoader.routeData只是一个Object而routeLoader.routeData.forEach失败,因为它不包含任何JSON数据。我不知道发生了什么事;任何帮助将不胜感激。
btw:routeLoader.js在jquery.js文件之后加载,并且在index.html页面的Angular.js文件之前加载。