簡體   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