Javascript 使用提供程序运行命令OneNet
我正在使用ui路由器更改AngularJS应用程序中的状态。我有一个提供程序,它使用JavaScript在存在div的HTML中创建一个图形。只有一个视图具有图形提供程序使用的div元素,因此我希望在进入该状态时调用graphProvider.drawGraph() 我正在努力绘制图形:我得到的错误是,“未捕获错误:[$injector:modulerr]未能实例化模块dataPortalApp,原因是: 错误:[$injector:modulerr]未能实例化模块graphProvider,原因是: 错误:[$injector:nomod]模块“graphProvider”不可用!您可能拼错了模块名称或忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。“ My router.js看起来像:Javascript 使用提供程序运行命令OneNet,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我正在使用ui路由器更改AngularJS应用程序中的状态。我有一个提供程序,它使用JavaScript在存在div的HTML中创建一个图形。只有一个视图具有图形提供程序使用的div元素,因此我希望在进入该状态时调用graphProvider.drawGraph() 我正在努力绘制图形:我得到的错误是,“未捕获错误:[$injector:modulerr]未能实例化模块dataPortalApp,原因是: 错误:[$injector:modulerr]未能实例化模块graphProvider,原
(function() {
angular.module('dataPortalApp')
.config(DataPortalRouter);
DataPortalRouter.$inject = ['$stateProvider', '$urlRouterProvider', '$locationProvider', 'graphProvider'];
function DataPortalRouter($stateProvider, $urlRouterProvider, $locationProvider, graphProvider) {
$urlRouterProvider.otherwise("/");
$stateProvider
.state('dashboard', {
url: '/dashboard',
templateUrl: '/views/_dashboard.html',
onEnter: function() {
graphProvider.drawGraph()
}
})
.state('index', {
url: '/',
templateUrl: '/views/_index.html'
});
}//end DataPortalRouter
})();
(function(){
angular.module('dataPortalApp', ['ui.router', 'graphProvider']);
})();
我的应用程序js看起来像:
(function() {
angular.module('dataPortalApp')
.config(DataPortalRouter);
DataPortalRouter.$inject = ['$stateProvider', '$urlRouterProvider', '$locationProvider', 'graphProvider'];
function DataPortalRouter($stateProvider, $urlRouterProvider, $locationProvider, graphProvider) {
$urlRouterProvider.otherwise("/");
$stateProvider
.state('dashboard', {
url: '/dashboard',
templateUrl: '/views/_dashboard.html',
onEnter: function() {
graphProvider.drawGraph()
}
})
.state('index', {
url: '/',
templateUrl: '/views/_index.html'
});
}//end DataPortalRouter
})();
(function(){
angular.module('dataPortalApp', ['ui.router', 'graphProvider']);
})();
非常感谢您的帮助 确保所有模块脚本都已导入且顺序正确。新秩序应为:
图形提供程序的模块依赖项:
App.js:
(function(){
angular.module('dataPortalApp', ['ui.router']);
})();
谢谢你的帮助!现在我得到Uncaught错误:[$injector:nomod]模块“dataPortalApp”不可用!您要么拼错了模块名,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。
我似乎无法获胜-如果我将应用程序放在第一位,则它需要提供商。如果我把提供商放在第一位,它会说应用程序不可用。如果您有机会查看,这里还有更多的代码。@tmurphree我已经更正了我的原始答案。查看完整代码,graphProvider.js
应该放在app.js
之后,因为它声明了要将graphProvider附加到的模块(对不起,我的错误)。回到最初的错误,我认为这只是因为你试图将提供者作为一个模块注入,而它正在抱怨,因为它不是一个模块,所以只需从app.js中删除它。你就是那个人!这完全解决了它!很抱歉延迟回复。非常好,如果这有帮助,请标记为答案。谢谢