细节为空时,不会显示空表单

时间:2016-08-30 05:55:23

标签: angular typescript

在这里,我试图用一些名为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;
               }

这里我试图显示结果,即使值为空,但是当细节为空时我无法看到表格。

1 个答案:

答案 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);
                              }
                       );