我已经在Github上报告了这个问题,但是在这里问这个问题也不会伤害
错误说明:
我在ng-bootstrap中添加并开始收到此错误。
VM325:9 Uncaught TypeError: Cannot read property 'Observable' of undefined(…)webpackUniversalModuleDefinition @ VM325:9(anonymous function) @ VM325:10module.exports @ scripts.bundle.js:28476 @ scripts.bundle.js:6__webpack_require__ @ inline.bundle.js:53826 @ scripts.bundle.js:37__webpack_require__ @ inline.bundle.js:53webpackJsonpCallback @ inline.bundle.js:24(anonymous function) @ scripts.bundle.js:1 main.bundle.js:420
链接到可以重现问题的极简工作的插件:
请参阅my GitHub branch。
此提交没有此错误4a049710ba900f5aef8d11141491607e45e49cc2。 这个提交fcf8260c8b560f665fc4a34b49dd47f1700c3945'引入了bootstrap - 无法获得js包含而没有可观察到的未定义错误'引入了错误。
Angular,ng-bootstrap和Bootstrap的版本:
Angular 2.2 - CLI
ng-bootstrap:“@ ng-bootstrap / ng-bootstrap”:“^ 1.0.0-alpha.14”,
答案 0 :(得分:2)
我刚刚克隆了您的回购,您需要对不同的文件进行3次更改,我将解释每个文件。
你忘了添加bootstrap依赖项,当我克隆你的repo时,由于缺少包而出现错误,只是这样做:
npm i bootstrap@next --save
或者将"bootstrap": "^4.0.0-alpha.5"
添加到依赖项列表中。
您的主要组件上没有路由器插座,如果您的路由无法正常工作,请将 app.component.html 更改为:
<h1>Energy with Angular 2.0</h1>
<router-outlet></router-outlet>
您的 EnergyComponent 将以角度<router-outlet>
注入。{/ p>
最后但并非最不重要的是您的主要问题,Observable错误是由于您在scripts
上包含 ng-bootstrap ,只是删除该行,它应该看起来像这样:
"styles": [
"styles.css",
"../node_modules/bootstrap/dist/css/bootstrap.css"
],
"scripts": [],
为什么呢?因为您在 app.module.ts 上导入 ng-boostrap 时已经包含 ng-boostrap ,所以只有当脚本是外部依赖项时才添加脚本,但是您不需要添加脚本。 t直接在你的代码上使用它们。例如,如果您使用纯粹的boostrap方式,css + javascript / jquery,您可以在脚本数组
上添加 bootstrap.js