Json数据以角度5

时间:2018-05-31 16:19:04

标签: html json angular typescript

我正在尝试将从服务器获取的Json值绑定到相应的文本框,但是当我绑定时,我将文本框中的值视为[object object]

<h1>{{title}}</h1> 
    <h3>Catalog</h3> 
    <hr />  

      <fieldset>
            <legend>About Tool</legend>
            <form [formGroup]="CatalogForm"  #formDir="ngForm" novalidate> 
                <div class="form-group row"> 
                <!-- <div *ngIf="ItemName != null"></div>-->
                 <!--<div *ngFor="let c of CatalogForm;let i=index"></div>-->
                 <label class="control-label col-md-12">ItemName</label>
                 <div class="col-md-4"></div>
                  <input class="form-control" readonly="true" type="text" formControlName="Category"  >

                  <pre>{{CatalogForm.value.Category | json }}</pre>
              </div>
               <br /><br/>
         </form>
   </form>

and my component code is 


 import { Component, OnInit } from '@angular/core';
    import { Http, Headers } from '@angular/http';  
    import { FormsModule,NgForm, FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';  
    import { Router, ActivatedRoute } from '@angular/router';  
    import { CatalogComponent } from '../catalog/catalog.component';  
    import { CatalogService } from '../services/Catalog.service';  
    import { ContactService } from '../services/Contact.service';
    import { URLService } from '../services/URL.service';
    import { SupportService } from '../services/Support.service';
    import { Catalog } from '../classes/Catalog';
    import { Contact } from '../classes/Contact';
    import { URL } from '../classes/URL';
    import { Support } from '../classes/Support';
    import { Category } from '../classes/Category';


  @Component({
  selector: 'app-catalog-form',
  templateUrl: './catalog-form.component.html',
  styleUrls: ['./catalog-form.component.scss']
})
export class CatalogFormComponent implements OnInit {
  Catalogdata:Catalog;
  Contacts:Contact[];
  URLs:URL[];
  Supportdata:Support[];
  CatalogForm:FormGroup;
  title: string = "";  
  id: number;  
  errorMessage: any;  
  constructor( private _fb: FormBuilder,private _avRoute: ActivatedRoute,  
    private catService: CatalogService,private conservice:ContactService,
    private urlservice:URLService,private supservice:SupportService, private _router: Router) {
      if (this._avRoute.snapshot.params["id"]) {  
        this.id = this._avRoute.snapshot.params["id"]; 
     }
     this.CatalogForm = this._fb.group({ 

      Category: [''],
      SubCategory:[''],
      ItemName:[''],
      Description:[''],
      IAP_Number:[''],
      /*ToolOwner:[''],
      BusinessOwner:[''],
      ProdURL:[''],
      IncidentURL:[''],
      RequestURL:[''],
      SupportType:[''],
      SupportValue:[''],
      SupportLink:['']*/
      }) 
    }

  ngOnInit() {
    console.log("I am in form component",this.id);
    if (this.id > 0) {  
      this.title = "View"; 
      console.log("Title of form:",this.title) ;
      this.catService.getCatalogDetails(this.id)  
      .subscribe( t => 
        this.CatalogForm.patchValue
        ({Category:t,SubCategory:t,Description:t,ItemName:t,IAP_Number:t}) , err => 
          console.log("Error messgae:",this.errorMessage)
        );
    }
    console.log("Catalog and Category Details:",this.CatalogForm);
    //.controls.Category.
    //get(['cItem']));
  }

  cancel() {  
    this._router.navigate(['/home']);  
}
//get ItemName()  {return  this.CatalogForm.get('Category').value; }
}

<pre>{{CatalogForm.value.Category | json }}</pre> 给我下面的JSON数据

[
  {
    "cats": {
      "category_Id": 3,
      "category_Name": "abc",
      "sub_Category": "mmm"
    },
    "cItem": {
      "catalog_Item_Id": 1,
      "category_Id": 3,
      "item_Name": "hsdd",
      "description": "sadss",

      "popularity_Flag": true,
      "iaP_No": null,
      "categoryID": {
        "category_Id": 3,
        "category_Name": "sds",
        "sub_Category": "sad"
      }
    }
  }
]

我的问题是如何在文本框中显示category_Name值。这里json的category_name为abc,我想将该值绑定到category_name文本框作为其值。你能看看吗?

1 个答案:

答案 0 :(得分:0)

尝试:

<input 
class="form-control" 
readonly="true" 
type="text"
formControlName="Category"
[ngModel]="CatalogForm.value.Category[0].cats.category_Name">

使用[(ngModel)]进行双向绑定