loadChildren语法 - 什么是哈希部分

时间:2017-01-17 12:12:05

标签: javascript angular

Angular in the docs说明如下:

{
  path: 'admin',
  loadChildren: 'app/admin/admin.module#AdminModule',
},

我对语法很好奇。据我了解,这一部分:

app/admin/admin.module

定义加载模块的路径。但这是什么#AdminModule

我正在阅读this article,并且有以下路径:

loadChildren: 'contacts.bundle.js',

所以,正如你所看到的,哈希没有任何东西。

1 个答案:

答案 0 :(得分:1)

哈希部分表示导出的模块名称。因此,在app/admin/admin.module内导出AdminModule

export class AdminModule {}

但是,如果使用默认导出,则无需使用散列。

以下是来源system_js_ng_module_factory_loader.ts的相关部分:

  private loadAndCompile(path: string): Promise<NgModuleFactory<any>> {
    let [module, exportName] = path.split(_SEPARATOR);
    if (exportName === undefined) exportName = 'default';

    return System.import(module)
        .then((module: any) => module[exportName])
        .then((type: any) => checkNotEmpty(type, module, exportName))
        .then((type: any) => this._compiler.compileModuleAsync(type));
  }