【问题标题】:how to pass interface based property in Angular如何在Angular中传递基于接口的属性
【发布时间】:2020-01-30 09:43:17
【问题描述】:

export interface Iresumedata {
  shortIntro: string,
    fullIntro: string,
    mob: number,
    email: string,
    profile: any

}

import {
  Component,
  OnInit
} from '@angular/core';
import {
  ResumedataService
} from "../../services/resumedata.service";

@Component({
  selector: 'app-experience',
  templateUrl: './experience.component.html',
  styleUrls: ['./experience.component.scss']
})
export class ExperienceComponent implements OnInit {

  experiencedata: any = [];
  constructor(private resumeservice: ResumedataService) {}

  ngOnInit() {
    this.resumeservice.getresumedata().subscribe(data => (this.experiencedata = data.experience));
  }

}

我试图通过服务获取数据并成功获取它,但问题是每当我基于 JSON 对象传递 experienceprofile 等属性时,它会不断抛出错误。

“Iresumedata[]”类型上不存在属性“体验”

Iresumedata 是我的界面,大家如何才能消除这个错误?请看一下,我到底应该怎么做?

【问题讨论】:

  • 那是因为你访问的是数组而不是对象的属性。
  • 那么,我应该使用什么方法
  • 您应该检查服务中getresumedata() 方法的返回类型是什么,返回数组而不是对象是否正确?如果您也可以发布ResumedataService 服务以更好地了解,这将很有用
  • 好的,我会检查感谢您的回复

标签: javascript json angular typescript


【解决方案1】:

请按照这些步骤操作。

  1. 你的界面结构应该是这样的
    export interface Iresumedata {

      shortIntro: string,
        fullIntro: string,
        mob: number,
        email: string,
        profile ?: any,
        experience ?:any,

    }
  1. Iresumedata 导入您的仪表板组件

    1. 像这样使用它
    this.resumeservice.getresumedata().subscribe(data:Iresumedata=>{ (this.experiencedata = data.experience)});

【讨论】:

  • 我不认为您可以按照您的建议注入简历数据接口,据我从问题中可以看出,该错误是获取简历数据方法的错误实现(这不是t 显示在问题中)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-12
  • 2011-05-04
  • 2019-06-30
  • 2020-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多