TypeError: Observable_1.Observable.fromEvent 不是 ng2-bs3-modal/ng2-bs3-modal 模块中的函数

Posted

技术标签:

【中文标题】TypeError: Observable_1.Observable.fromEvent 不是 ng2-bs3-modal/ng2-bs3-modal 模块中的函数【英文标题】:TypeError: Observable_1.Observable.fromEvent is not a function in ng2-bs3-modal/ng2-bs3-modal module 【发布时间】:2020-01-11 08:25:40 【问题描述】:

当我尝试导航到使用 ng2-bs3-modal 的任何组件时,我遇到了错误。相同的代码在不同的应用程序中工作。#

我得到的错误。

core.js:1673 ERROR 错误:未捕获(承诺中):TypeError:Observable_1.Observable.fromEvent 不是函数 TypeError: Observable_1.Observable.fromEvent 不是函数 在 ModalInstance.push../node_modules/ng2-bs3-modal/components/modal-instance.js.ModalInstance.init (modal-instance.js:52) 在新的 ModalInstance (modal-instance.js:12) 在新的 ModalComponent (modal.js:17) 在 createClass (core.js:9294) 在 createDirectiveInstance (core.js:9179) 在 createViewNodes (core.js:10399) 在 callViewAction (core.js:10715) 在 execComponentViewsAction (core.js:10634) 在 createViewNodes (core.js:10427) 在 createRootView (core.js:10313) 在 resolvePromise (zone.js:814) 在 resolvePromise (zone.js:771) 在 zone.js:873 在 ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421) 在 Object.onInvokeTask (core.js:3811) 在 ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420) 在 Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188) 在 drainMicroTaskQueue (zone.js:595) 在 ZoneTask.push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask [作为调用] (zone.js:500) 在调用任务(zone.js:1540)

依赖##

dependencies": 
    "@angular/common": "~6.1.9",
    "@angular/compiler": "~6.1.9",
    "@angular/core": "~6.1.9",
    "@angular/forms": "~6.1.9",
    "@angular/http": "~6.1.9",
    "@angular/platform-browser": "~6.1.9",
    "@angular/platform-browser-dynamic": "~6.1.9",
    "@angular/router": "~6.1.9",
    "@ngui/datetime-picker": "^0.16.2",
    "angular-in-memory-web-api": "~0.6.1",
    "clipboard": "~1.7.1",
    "core-js": "~2.4.1",
    "ngx-pagination": "~3.1.1",
    "rxjs": "^6.2.1",
    "rxjs-compat": "^6.2.1",
    "systemjs": "~0.19.40",
    "zone.js": "~0.8.26"
  ,
  "devDependencies": 
    "@angular-devkit/build-angular": "^0.12.4",
    "@angular/cli": "~6.0.8",
    "@angular/compiler-cli": "~6.0.3",
    "@ngui/utils": "~0.7.0",
    "@types/jasmine": "~2.5.36",
    "@types/node": "~6.0.46",
    "canonical-path": "~0.0.2",
    "concurrently": "~3.2.0",
    "jasmine-core": "~2.4.1",
    "karma": "~3.0.0",
    "karma-chrome-launcher": "~2.0.0",
    "karma-cli": "~1.0.1",
    "karma-jasmine": "~1.0.2",
    "karma-jasmine-html-reporter": "~0.2.2",
    "lite-server": "~2.4.0",
    "lodash": "~4.17.11",
    "ng2-bs3-modal": "^0.10.4",
    "protractor": "~5.4.1",
    "rimraf": "~2.5.4",
    "tslint": "~3.15.1",
    "typescript": "~2.7.2"
  ,
  "repository": 

我的组件中的示例代码。

import  ModalComponent  from 'ng2-bs3-modal/ng2-bs3-modal';
import  NguiDatetimePickerModule  from '@ngui/datetime-picker';
import  NgxPaginationModule  from 'ngx-pagination';
import  IETLTaskSetup  from '../../../Models/etltasksetup';
import  DBOperation  from '../../../Shared/enum';
import  Environment  from '../../../Shared/enum';
import  Observable  from 'rxjs';
import  Global  from '../../../Shared/global';
import  ISecurity  from '../../../Models/security';

@Component(
    templateUrl: `../View/etltasksetup.component.html`
)

export class ETLTaskComponent implements OnInit 
    @ViewChild('modal') modal: ModalComponent;
    @ViewChild('modal2') modal2: ModalComponent;````

【问题讨论】:

【参考方案1】:

我将 ng2-bs3-modal 更新到最新版本 0.15.0。然后我更新了与 ng2-bs3-modal 相关的所有代码,如下所示 旧代码

<modal #modal2>
    <form >
        <modal-header [showDismiss]="true">

        </modal-header>
        <modal-body>

        </modal-body>
        <modal-footer style="background-color:cornsilk;">

        </modal-footer>
    </form>
<modal>

新代码

<bs-modal #modal2>
    <form >
        <bs-modal-header [showDismiss]="true">

        </bs-modal-header>
        <bs-modal-body>

        </bs-modal-body>
        <bs-modal-footer style="background-color:cornsilk;">

        </bs-modal-footer>
    </form>
</bs-modal>

【讨论】:

【参考方案2】:

你没有导入onInit

import  OnInit  from '@angular/core';

编辑:

不再支持Rxjs 6.x .fromEvent()。您必须向我们展示您在代码中使用它的位置。如果它发生在您的 NodeModule ModalInstance 中并且您无法控制代码,则需要摆脱旧模块或对其进行更新。

使用示例

// RxJS v6+
import  fromEvent  from 'rxjs';
import  map  from 'rxjs/operators';

//create observable that emits click events
const source = fromEvent(document, 'click');
//map to string with given event timestamp
const example = source.pipe(map(event => `Event time: $event.timeStamp`));
//output (example): 'Event time: 7276.390000000001'
const subscribe = example.subscribe(val => console.log(val));

【讨论】:

它在上面,我粘贴的时候漏掉了 感谢您的建议。我从这个 ng2-bs3-modal 节点模块收到错误。在浏览器开发工具中,我可以看到代码“使用严格”; var Observable_1 = require('rxjs/Observable');需要('rxjs/add/operator/map');要求('rxjs/add/observable/fromEvent');这一行抛出错误。 this.shown = Observable_1.Observable.fromEvent(this.$modal, this.shownEventName)。我正在使用最新版本的“ng2-bs3-modal”:“^0.15.0”,刚刚更新。还是不行。 它在那个版本的 rxjs 中根本不起作用。您有以下选择。 1、降级rxjs,移除node模块,或者手动更新node模块。如果您每次升级模块时都手动更新,您的代码将被覆盖,您必须再次更新它。尝试在他们的 GIT 上发布对修复的拉取请求,或将其发布在他们的 git 上以供他们更新模式。无论哪种方式,它都不能与当前版本的 rxjs 一起使用。 我将模块更新到最新版本,它工作正常。但是我必须做很多代码更改

以上是关于TypeError: Observable_1.Observable.fromEvent 不是 ng2-bs3-modal/ng2-bs3-modal 模块中的函数的主要内容,如果未能解决你的问题,请参考以下文章

在 Axios 中使用 Redux-Observable 的问题

将 EXTJS 4.1 升级到 4.2... _incr_ 在 Ext.util.Observable 中未定义

Angular5:TypeError:您在预期流的位置提供了“未定义”。您可以提供 Observable、Promise、Array 或 Iterable

ionic - RXJS 错误:rxjs_Observable__.Observable.combineLatest 不是函数

Angular2 RxJS 得到“Observable_1.Observable.fromEvent 不是函数”错误

Java_观察者模式(Observable和Observer) -转