我在Angular 2 RC5中实现了一个自定义管道,它处理从服务器获取的数据.我遇到的问题是管道ngOnInit在我调用服务器的地方之前执行.
作为测试,我将已填充的列表传递给Pipe,一切都按预期工作.我遇到的唯一问题是在呈现页面时执行管道.所以那个案例中的清单是空的.
有没有办法"延迟"页面的呈现,以便在管道执行时它具有从服务器检索的数据?
这是我的代码示例:
零件
ngOnInit() {
Observable.forkJoin([
this.testService.get(),
this.multilingualService.get(localStorage.getItem('currentPage'))
]).subscribe(servicesResult => {
this.mainList = servicesResult[0];
this.pageMultilinguals = servicesResult[1];
},
error => this.handleError(error));
}
Run Code Online (Sandbox Code Playgroud)
管
@Pipe({name: 'multiLang'})
export class MultilingualPipe implements PipeTransform {
transform(value: string, pageMultilinguals: Multilingual[], context: number): string {
for (let i = 0; i < pageMultilinguals.length; i++) {
if (pageMultilinguals[i].reference === value && pageMultilinguals[i].contexTypeId === context) {
return pageMultilinguals[i].value;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
模板
<span>{{ 'Test' | multiLang: pageMultilinguals: 9 }}</span>
Run Code Online (Sandbox Code Playgroud) 我正在将代码从角度beta迁移到RC5版本.我面临着使用的基于模型的表格的问题.因为我已经在角度2 beta中开发了很多形式.我很难将基于模型的表单更改为基于模板的表单.任何形式迁移的帮助都非常感谢.
我现有的代码是这样的
profile.ts
import {FORM_DIRECTIVES, REACTIVE_FORM_DIRECTIVES} from '@angular/forms';
import {FormBuilder, FormGroup, FormControl, Validators} from '@angular/forms';
this.firstName = new FormControl();
this.lastName = new FormControl();
this.email = new FormControl();
this.addressLine = new FormControl();
this.postal = new FormControl();
this.postalArea = new FormControl();
this.form = builder.group({
firstName: this.firstName,
lastName: this.lastName,
email: this.email,
addressLine: this.addressLine,
postal: this.postal,
postalArea: this.postalArea,
photo: this.photo
});
Run Code Online (Sandbox Code Playgroud)
和profile中的模板.HTML如下
<form class="form-default" [formGroup]="form">
<input type="text" class="form-control" id="firstName" [(ngModel)]="model.firstName" formControlName="firstName" maxlength="200">
<input type="text" class="form-control" id="lastName" [(ngModel)]="model.lastName" formControlName="lastName" maxlength="200">
<input type="text" class="form-control" id="email" …Run Code Online (Sandbox Code Playgroud) 在我们的项目中,我们将从Angular 2 RC4转移到RC5.
问题是:随着ngModules的引入,桶(索引文件)是否变得不必要?或者你可以并行使用它们吗?如何使用这两个概念?