由于以下原因无法实例化模块dataAccessService:错误:[$ injector:nomod]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了由于以下原因无法实例化模块dataAccessService:错误:[$ injector:nomod]相关的知识,希望对你有一定的参考价值。
浏览器抛出这个错误未捕获错误:[$ 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)
}
答案
问题是你在这里添加了不存在的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
以上是关于由于以下原因无法实例化模块dataAccessService:错误:[$ injector:nomod]的主要内容,如果未能解决你的问题,请参考以下文章
错误:[$injector:unpr] 未知提供者:$routeProvider,无法实例化模块 myApp,原因是