我有一个非常奇怪的问题。一切正常,没有延迟加载(有aot)。
我已经完成了这些步骤,使我的模块加载了laze:
loadChildren: 'app/calls/calls.module#CallsModule',
在app.module我的模块中删除:
@NgModule({
imports: [
// CallsModule,
],
})
export class AppModule {
}
然后我收到了错误:
app.component.html:10 ERROR TypeError: this.fullDataStream.filter is not a function
this.fullDataStream
是rxjs/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
在延迟加载时不会重播值
答案 0 :(得分:0)
所以有两个问题。
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
包装一起使用。
我的服务导入了两次,这就是ReplaySubject没有重播项目的原因。新实例没有。阅读更多:Angular2 Lazy Loading Service being Instantiated Twice https://angular.io/guide/ngmodule-faq#q-why-bad