无法使用angular加载@ ng-bootstrap / ng-bootstrap

时间:2018-06-14 08:13:30

标签: javascript angular bootstrap-4

我试图使用带有角度和电子的@ ng-bootstrap / ng-bootstrap,使用gulp。

这是我的渲染器.ts:

    /**
 * Angular Module declaration
 */

let BrowserModule = require('@angular/platform-browser').BrowserModule;
let UpgradeModule = require('@angular/upgrade/static').UpgradeModule;
let NgbModule = require('@ng-bootstrap/ng-bootstrap').NgbModule;
let NgModule = require('@angular/core').NgModule;

let platformBrowserDynamic = require('@angular/platform-browser-dynamic').platformBrowserDynamic;
require('zone.js');

@NgModule({
  imports: [
    NgbModule.forRoot(),
    BrowserModule,
    UpgradeModule
  ]
})

export class AppModule {
  constructor() { }

  ngDoBootstrap() {
  }
}

let angular = require('angular');

// When DOM is loaded
angular.element(document).ready(function () {
  // start up the Angular module "AppModule" in AngularJS
  // platformBrowserDynamic().bootstrapModule(AppModule, { ngZone: 'noop'})
  platformBrowserDynamic().bootstrapModule(AppModule)
    .then((platformRef) => {
      const upgrade = platformRef.injector.get(UpgradeModule);
      upgrade.bootstrap(document, ['app']);
    });
});

我的index.html:

<!DOCTYPE html> <html>   <body>
<script>
  require('./dist/renderer.js')
</script>

<button ngbTooltip="hello">Hello</button>   </body> </html>

我在尝试加载NgbModules

时遇到此错误

Can't resolve all parameters for NgbAlert: (?)

我在这里失去什么?

PD:我在代码的任何地方都没有使用NgbAlert。

错误:

  

未捕获错误:无法解析NgbAlert的所有参数:(?)。       at syntaxError(C:\ Users \ Manu \ Documents \ electron-quick-start-master \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:sourcemap:301)       在CompileMetadataResolver._getDependenciesMetadata(C:\ Users \ Manu \ Documents \ electron-quick-start-master \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:sourcemap:10893)       在CompileMetadataResolver._getTypeMetadata(C:\ Users \ Manu \ Documents \ electron-quick-start-master \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:sourcemap:10786)       at CompileMetadataResolver.getNonNormalizedDirectiveMetadata(C:\ Users \ Manu \ Documents \ electron-quick-start-master \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:sourcemap:10405)       在CompileMetadataResolver._getEntryComponentMetadata(C:\ Users \ Manu \ Documents \ electron-quick-start-master \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:sourcemap:10989)       在C:\ Users \ Manu \ Documents \ electron-quick-start-master \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:sourcemap:10638       在Array.map()       在CompileMetadataResolver.getNgModuleMetadata(C:\ Users \ Manu \ Documents \ electron-quick-start-master \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:sourcemap:10638)       在CompileMetadataResolver.getNgModuleSummary(C:\ Users \ Manu \ Documents \ electron-quick-start-master \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:sourcemap:10464)       在C:\ Users \ Manu \ Documents \ -electric-quick-start-master \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:sourcemap:10551

1 个答案:

答案 0 :(得分:0)

最后我可以解决它!

我添加了require(&#39; reflect-metadata&#39;); 在我的renderer.ts之上

require('reflect-metadata');
let BrowserModule = require('@angular/platform-browser').BrowserModule;
let UpgradeModule = require('@angular/upgrade/static').UpgradeModule;
let NgbModule = require('@ng-bootstrap/ng-bootstrap').NgbModule;

将其置于其他地方并不能使其发挥作用。

经过一番调查后,我发现问题是由于JIT编译器在尝试加载ng-bootstrap模块时出现反射错误引起的。

我希望这可以帮助其他任何人。