在这里,我试图用一些名为custominfo的细节来显示表单,这里有两个重要的案例 case-1:当数据库显示表单中包含详细信息时,自定义信息。 case-2:当数据库显示空表单中没有自定义信息详细信息时。 在这里,我得到案例1,但我没有得到案例-2,表格没有显示,我真的尝试了很多,但没有用,有人可以请帮助我解决方案。 我的服务。
import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import { IDetails } from './details';
@Injectable()
export class GetCustInfo {
str = localStorage.getItem('social');
loc = JSON.parse(this.str);
id = this.loc.profile_id;
private _productUrl = 'http://localhost/a2server/index.php/profile/editcustominfo/'+this.id;
constructor(private _http: Http) { }
getCustList(): Observable<IDetails[]> {
return this._http.get(this._productUrl)
.map((response: Response) => { return <IDetails[]> response.json().data[0];
});
}
}
我的主要内容(我订阅了我的上述服务),
export class Custom {
message:string = "Custom Info Updated";
hide:any = false;
http: Http;
details:any;
form: FormGroup;
constructor(fbld: FormBuilder,http: Http,private _service:GetCustInfo,public toastr: ToastsManager) {
this.http = http;
this._service.getCustList()
.subscribe(details => this.details = details,
err => this.details = {});
我的模板,
<div class="col-sm-12 nopadding custominfo contenttoppadding">
<form class="nobottommargin" *ngFor="details" [formGroup]="form" (ngSubmit)="onSubmit(form.value)" name="template-contactform" action="include/sendemail.php" method="post" novalidate="novalidate">
<div class="form-group">
<div class="input-group divcenter">
<span class="input-group-addon noradius inputgroupaddon"><i class="icon-facebook"></i></span>
<input type="email" type="email" tooltip="Custom url" [tooltipDisabled]="false" [tooltipAnimation]="true"
tooltipPlacement="top" name="widget-subscribe-form-email" [formControl]="form.controls['custominfo']" [(ngModel)]="details.custominfo" class="form-control required email formcontrolheight" placeholder="Facebook" aria-required="true" />
</div>
</div>
</form>
</div>
interface.ts,
export interface IDetails{
custominfo:string;
}
这里我试图显示结果,即使值为空,但是当细节为空时我无法看到表格。
答案 0 :(得分:0)
你想要展示一个表格吗?或多种形式?
您正在使用*ngFor
?
你的变量details
是一个数组,但你的getCustList()
函数只返回第一个元素?
无论如何..为您的getCustList() subscribtion
添加错误处理:
this._service.getCustList()
.subscribe(details => this.details = details,
err => {
this.details = [{}]; /* put your empty/default model here */
console.log(err);
}
);