繁体   English   中英

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

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

我正在尝试使用gulp将@ ng-bootstrap / ng-bootstrap与角度和电子一起使用。

这是我的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']);
    });
});

还有我的index.html:

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

尝试加载NgbModules时出现此错误

无法解析NgbAlert的所有参数:(?)

我在这里失去什么?

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

错误:

未捕获的错误:无法解析NgbAlert的所有参数:(?)。 在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)位于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

最后我可以解决它!

我添加了require('reflect-metadata'); 我的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;

将其放置在其他位置无法使其正常工作。

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

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

暂无
暂无

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

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