Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用提供程序运行命令OneNet_Javascript_Angularjs_Angular Ui Router - Fatal编程技术网

Javascript 使用提供程序运行命令OneNet

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,原

我正在使用ui路由器更改AngularJS应用程序中的状态。我有一个提供程序,它使用JavaScript在存在div的HTML中创建一个图形。只有一个视图具有图形提供程序使用的div元素,因此我希望在进入该状态时调用graphProvider.drawGraph()

我正在努力绘制图形:我得到的错误是,“未捕获错误:[$injector:modulerr]未能实例化模块dataPortalApp,原因是: 错误:[$injector:modulerr]未能实例化模块graphProvider,原因是: 错误:[$injector:nomod]模块“graphProvider”不可用!您可能拼错了模块名称或忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。“

My router.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']);
})();
我的应用程序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']);
})();

非常感谢您的帮助

确保所有模块脚本都已导入且顺序正确。新秩序应为:

  • angular.js
  • angular-ui-router.js
  • app.js
  • graphProvider.js(在app.js之后,因为它是您模块的一部分,而不是我最初认为的另一个模块。)
  • 并删除
    图形提供程序的模块依赖项:

    App.js:

    (function(){
      angular.module('dataPortalApp', ['ui.router']);
    })();
    

    谢谢你的帮助!现在我得到
    Uncaught错误:[$injector:nomod]模块“dataPortalApp”不可用!您要么拼错了模块名,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。
    我似乎无法获胜-如果我将应用程序放在第一位,则它需要提供商。如果我把提供商放在第一位,它会说应用程序不可用。如果您有机会查看,这里还有更多的代码。@tmurphree我已经更正了我的原始答案。查看完整代码,
    graphProvider.js
    应该放在
    app.js
    之后,因为它声明了要将graphProvider附加到的模块(对不起,我的错误)。回到最初的错误,我认为这只是因为你试图将提供者作为一个模块注入,而它正在抱怨,因为它不是一个模块,所以只需从app.js中删除它。你就是那个人!这完全解决了它!很抱歉延迟回复。非常好,如果这有帮助,请标记为答案。谢谢