简体   繁体   English

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

[英]Can't load @ng-bootstrap/ng-bootstrap with angular

I'm trying to use @ng-bootstrap/ng-bootstrap with angular and electron, using gulp. 我正在尝试使用gulp将@ ng-bootstrap / ng-bootstrap与角度和电子一起使用。

this is my renderer.ts: 这是我的renderer.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']);
    });
});

And my index.html: 还有我的index.html:

 <!DOCTYPE html> <html> <body> <script> require('./dist/renderer.js') </script> <button ngbTooltip="hello">Hello</button> </body> </html> 

I'm getting this error when trying to load NgbModules 尝试加载NgbModules时出现此错误

Can't resolve all parameters for NgbAlert: (?) 无法解析NgbAlert的所有参数:(?)

What am I loosing here? 我在这里失去什么?

PD: I'm not using NgbAlert anywhere on my code. PD:我在代码的任何地方都没有使用NgbAlert。

Error: 错误:

Uncaught Error: Can't resolve all parameters for NgbAlert: (?). 未捕获的错误:无法解析NgbAlert的所有参数:(?)。 at syntaxError (C:\\Users\\Manu\\Documents\\electron-quick-start-master\\node_modules\\@angular\\compiler\\bundles\\compiler.umd.js:sourcemap:301) at CompileMetadataResolver._getDependenciesMetadata (C:\\Users\\Manu\\Documents\\electron-quick-start-master\\node_modules\\@angular\\compiler\\bundles\\compiler.umd.js:sourcemap:10893) at 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) at CompileMetadataResolver._getEntryComponentMetadata (C:\\Users\\Manu\\Documents\\electron-quick-start-master\\node_modules\\@angular\\compiler\\bundles\\compiler.umd.js:sourcemap:10989) at C:\\Users\\Manu\\Documents\\electron-quick-start-master\\node_modules\\@angular\\compiler\\bundles\\compiler.umd.js:sourcemap:10638 at Array.map () at Compil 在CompileMetadataResolver的语法错误(C:\\ Users \\ Manu \\ Documents \\ electron-quick-start-master \\ node_modules \\ @angular \\ compiler \\ bundles \\ compiler.umd.js:sourcemap:301)中._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)位于CompileMetadataResolver.getNonNormalizedDirectiveMetadata(C:\\ Users \\ Manu \\ Documents \\ electron-quick-start-master \\ node_modules \\ @angular \\ compiler \\在CompileMetadataResolver._getEntryComponentMetadata(C:\\ Users \\ Manu \\ Documents \\ electron-quick-start-master \\ node_modules \\ @angular \\ compiler \\ bundles \\ compiler.umd.js:sourcemap中的bundles \\ compiler.umd.js:sourcemap:10405) :10989)在C:\\ Users \\ Manu \\ Documents \\ electron-quick-start-master \\ node_modules \\ @angular \\ compiler \\ bundles \\ compiler.umd.js:sourcemap:10638在Array.map()在编译 eMetadataResolver.getNgModuleMetadata (C:\\Users\\Manu\\Documents\\electron-quick-start-master\\node_modules\\@angular\\compiler\\bundles\\compiler.umd.js:sourcemap:10638) at CompileMetadataResolver.getNgModuleSummary (C:\\Users\\Manu\\Documents\\electron-quick-start-master\\node_modules\\@angular\\compiler\\bundles\\compiler.umd.js:sourcemap:10464) at C:\\Users\\Manu\\Documents\\electron-quick-start-master\\node_modules\\@angular\\compiler\\bundles\\compiler.umd.js:sourcemap:10551 eMetadataResolver.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 \\ electron-quick-start-master \\ node_modules \\ @angular \\编译\\束\\ compiler.umd.js:sourcemap:10551

Finally I could fix it! 最后我可以解决它!

I added require('reflect-metadata'); 我添加了require('reflect-metadata'); on top of my renderer.ts . 我的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;

Placing it somewhere else doesn't make it work. 将其放置在其他位置无法使其正常工作。

After some investigation, I came with that the problem was caused due to a reflection error within the JIT compiler when trying to load ng-bootstrap modules. 经过一番调查后,我发现问题是由于尝试加载ng-bootstrap模块时JIT编译器内的反射错误引起的。

I hope this could help anyone else. 我希望这可以帮助其他人。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM