rxjs 5.5过滤器不是一个函数(角度5懒加载)

时间:2017-11-21 02:49:39

标签: angular typescript rxjs angular-cli

我有一个非常奇怪的问题。一切正常,没有延迟加载(有aot)。

我已经完成了这些步骤,使我的模块加载了laze:

  1. 更改应用路由:loadChildren: 'app/calls/calls.module#CallsModule',
  2. 检查应用程序 - 一切都很好
  3. 在app.module我的模块中删除: @NgModule({ imports: [ // CallsModule, ], }) export class AppModule { }

  4. 然后我收到了错误:

  5. app.component.html:10 ERROR TypeError: this.fullDataStream.filter is not a function

    this.fullDataStreamrxjs/Subject

    我尝试将.filter替换为.pipe(filter())但我的代码不再有效(ReplaySubject不重播项目)。

    有什么问题?它的'我或打字稿/角度/角度cli / rxjs错误? Angular 5.0.1 RxJS 5.5.2 Typescript 2.4.2 angular-cli 1.5.0 UPD: 使用导入的CallModule时,ReplaySubject在延迟加载时不会重播值

1 个答案:

答案 0 :(得分:0)

所以有两个问题。

  1. public class PharmacyVM { public Pharmacy pharmacyProp { get; set; } public Address addressProp { get; set; } public Company companyProp { get; set; } public int CityId { get; set; } public SelectList CityIdList { get; set; } public PharmacyVM() { pharmacyProp = new Pharmacy(); addressProp = new Address(); companyProp = new Company(); CityIdList =new SelectList(db.Cities, "Id", "Name"); } } public ActionResult Create() { var pharmacyVM = new PharmacyVM(); return View(pharmacyVM); } @model PharmacyVM @using (Html.BeginForm()) { @Html.HiddenFor(m => m.CityId ) <div class="editor-label"> @Html.LabelFor(m => m.Name) </div> <div class="editor-field"> @Html.EditorFor(m => m.Name) @Html.ValidationMessageFor(m => m.Name) </div> <button type="submit">Create</button> } [HttpPost] public ActionResult Create(PharmacyVM model) { int c = model.addressProp return View(viewModel); } 实际应该与filter包装一起使用。

  2. 之前不知道为什么会有效
  3. 我的服务导入了两次,这就是ReplaySubject没有重播项目的原因。新实例没有。阅读更多:Angular2 Lazy Loading Service being Instantiated Twice https://angular.io/guide/ngmodule-faq#q-why-bad