浏览器向我抛出此错误未捕获的错误:[$ injector:modulerr]由于以下原因,无法实例化模块应用程序: 错误:[$ injector:modulerr]由于以下原因,无法实例化模块dataAccessService: 错误:[$ injector:nomod]模块'dataAccessService'不可用!您可能拼错了模块名称,或者忘记了加载它。如果要注册模块,请确保将依赖项指定为第二个参数。
是什么原因造成的?
我已经尝试切换脚本文件,但是没有成功。路线可行,但内部服务无法实现
module app {
const app = angular.module("app", ["ngRoute","dataAccessService"]);
app.config(routeConfig);
// routeConfig.$inject["$routeProvider"];
function routeConfig($routeProvider) {
$routeProvider
.when('/drivers', {
templateUrl: './src/pages/drivers.html',
controller: 'DriversListCtrl'
})
// .when('/teams', {
// templateUrl: './src/pages/teams.html',
// controller: 'teamsController'
// })
// .otherwise({
// redirect:'/drivers'
// })
}
}
和我的服务
module app.service {
export interface IDataAccessService {
getApi():ng.IPromise<IDriver>;
}
export interface IDriver {
name:string;
team:string;
points:number;
}
export class DataAccessService implements IDataAccessService {
static $inject = ['$http'];
constructor(private $http: ng.IHttpService) {
}
getApi():ng.IPromise<IDriver>{
return this.$http.get('https://ergast.com/api/f1/2013/driverStandings.json')
.then((response:ng.IHttpPromiseCallbackArg<IDriver>):IDriver=>{
return response.data;
})
}
}
angular.module("app",[]).service("dataAccessService", DataAccessService)
}
最后是控制器
module app.driversList {
export interface IDriversList {
fullName:any;
}
export class DriversListCtrl implements IDriversList {
fullName:any;
static $inject = ["dataAcessService"];
constructor(private dataAcessService:app.service.DataAccessService){
this.dataAcessService.getApi().then((data:app.service.IDriver):void=>{
this.fullName = data;
})
}
}
angular.module("app",[]).controller("DriversListCtrl", DriversListCtrl)
}
答案 0 :(得分:0)
问题是您在这里的dataAccessService
模块依赖项中添加了不存在的app
模块:
const app = angular.module("app", ["ngRoute","dataAccessService"]);
\
there is no such module
您应该使用angular.module("dataAccessService", [])
定义一个模块并在其中注册您的控制器和服务,或者只是将其从app
依赖项中删除:
const app = angular.module("app", ["ngRoute"]);
看起来您的控制器中有一个错字,这也会导致异常:
should be Access, not Acess
/
static $inject = ["dataAcessService"];
constructor(private dataAcessService:app.service.DataAccessService){
\
should be Access, not Acess