【问题标题】:Multiple config blocks in angular module角度模块中的多个配置块
【发布时间】:2014-08-30 19:44:43
【问题描述】:

我需要在加载之前解决我的应用程序中的一些依赖项(为我的服务获取数据等)。我想将它们分开,这样我就有一个用于主应用程序的配置块,然后为应用程序的其他部分提供一个或多个配置块。

最终,我希望它能够解决主应用程序的依赖关系,加载与之关联的组件,然后解决其余部分并加载这些部分,因此加载时它的响应速度更快。

这是我目前为止的想法,但它没有解决第一个配置块中的依赖关系:

angular.module('myApp', ['ui.router', 'kendo.directives'])
  .config(function($stateProvider) {
    $stateProvider
      .state('settings', {
        url: '/',
        views: {
          'mainNav': {
              templateUrl: 'scripts/directives/mainNav/mainNav.html',
              controller: 'mainNavCtrl'
          //etc
          }
        },
        resolve: {
          fetchSettings: function(Settings) {
            return Settings.fetch;
          }
        }
      });
  })
  .config(function ($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise('/');

    $stateProvider
      .state('otherPart', {
        url: '',
        views: {
          'otherPart': {
            templateUrl: 'views/otherPart.html' 
           //etc
          }
        },
        resolve: {
          fetcherPromise: function(User, MyData) {
            var fns = [
              MyData.fetch,
              User.fetchEntitlements
            ];
            return fetcher.inSerial(fns);
          }
        }
      })
      ;

  });

我是否走在正确的轨道上?

【问题讨论】:

  • 您可以使用 .run() 而不是 .config() 来启动 fetch 调用。在您的主要组件中,虽然数据还没有准备好,但不要显示任何内容。

标签: angularjs config


【解决方案1】:

在应用程序中有多个配置块不是问题。它应该可以正常工作。链接配置以保持隔离是完全可以的。你应该在这里缺少其他东西。可能是在应用配置开始时服务提供者没有解决。

或者应用程序启动时没有解析包含服务的模块。确保配置块中使用的模块或服务在启动时已解析并在 AppModule 中可用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-12
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多