javascript - 实例化子对象(对象内的对象)Angular 2

标签 javascript json angular typescript

我有一个模型“Profesional”,它的属性是另一个模型“Address”:

   'use strict';
import * as Address from './models/address';

export interface Profesional {
    id?: number;

    name?: string;

    address?: Address;
}

和另一个模型:

    'use strict';

export interface Adress{

    id?: number;

    name?: string;
}

我遇到的问题是在使用 Profesionals 实例的组件中:

    <input type="text" [(ngModel)]="profesional.name">

    <input [(ngModel)]="profesional.address.id" class="form-control">

当我从数据库获取 profesional 的实例(保存在名为 profesional 的变量中)时,属性名称将使用对象的值进行设置。但该地址给了我一个错误:

异常:错误:未捕获( promise 中):异常:./CreateProfetional 类 CreateProfetional 中出现错误 - 内联模板:48:59 原始异常:TypeError:无法读取未定义的属性“id” ts 只是有获取专业实例的方法:

import { Component, OnInit  } from '@angular/core';
import { DefaultApi } from '../../../api/api/DefaultApi';
import {Profesional} from '../../../api/model/Profetional';
import {Address} from '../../../api/model/Address';
declare var $: any;
@Component({
  selector: 'profesionales',
  styles: [require('./profesionales.component.css').toString()],
  template: require('./profesionales.component.html'),
  providers: [DefaultApi]
})
export class CrearEditarProfesionalesComponent {
  profesional: Profesional = {};

  ngOnInit() {
        this.onGet(1);  
  };

  onGet = (id: number) => {
    this._apiDentos.findProfesionalById(id.toString())
      .subscribe(res => {
        this.profesional = res
      },
      console.error);
  };

}

如何实例化这个对象属性“profesional.adress”?这是可能的,或者我必须创建一个简单的变量,然后为其分配属性值?这样做的正确方法是什么?

这是 json:

{  
   "id":1,
   "name":"1",
   "address":{  
      "id":1,
      "name":"fsda"
   }
}

最佳答案

首先,请注意,在您的 Professional 界面中,地址类型应从字符串更改为地址。现在,您至少需要初始化子对象,这样就不会出现异常:

profesional: Profesional = <Profesional>{ 'address' : {} };

更好的选择是初始化所有属性,但这取决于域。

关于javascript - 实例化子对象(对象内的对象)Angular 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39195402/

相关文章:

javascript - 获取ReactJS中每个父评论的最深评论

javascript - 使用 WebSockets 的 JavaScript 客户端能否以编程方式检测来自服务器的乒乓事件?

javascript - 使用 jQuery 和 Javascript 的多个 API 调用架构

jquery - AJAX Jsonp 调用在 IE9 中失败

json - 将 Pandas DataFrame 和元数据保存为 JSON 格式

javascript - 如何将 p-checkbox 设置为选中并将选择对象存储到列表

javascript - d3 startAngle 为 NaN,endAngle 为 NaN,这会引发错误

javascript - 使用 Angular 2+ 动画蒙版位置

Angular-Protractor-Headless Chromium : When using APP_INITIALIZE, 在页面上找不到 Angular

javascript - 如何 Hook 库函数(Golden Layout)并调用其他方法