[英]Usage of bootstrap 4 or ng-bootstrap components in angular 4
[英]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时出现此错误
我在这里失去什么?
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.