角度2中类和属性的实现

时间:2018-02-02 05:41:48

标签: angular

我有一个包含以下属性的菜单类。

menu.ts

export class Menu {
  SectionId:string;
  SectionName:string;
  ParentSectionId:number;
  Title:string;
  TitleOfAccess:string;
  Order:number;
  Submenu:Menu;
}

我从服务获取JSON数据并创建了一个类型菜单数组。当我尝试在数组中推送这些值时,它会从JSON中推送所有值。但是我只在menu.ts中指定了这些属性

export class MenuComponent implements OnInit {

  menuObj: Array<Menu>=[]; 
  constructor(private serviceObj:SharedService) { }

  ngOnInit() {
    this.getMenu()
  }
getMenu()
  {
    this.serviceObj.getMenu().subscribe(
    data=>{
      data.forEach(element => {
        this.menuObj.push(element);
      });
      console.log(data);
      console.log(this.menuObj);
    }

    )
  } 

我有一个控制台记录了两个列表,两者都是相同的。它也会推动不需要的值。它是否仅将特定值从JSON推送到数组。

1 个答案:

答案 0 :(得分:0)

JavaScript不支持类型检查和对象映射,尽管typescript会这样做。由于您的应用程序将仅编译为javascript。所以要么,你必须自己编写一个mapper类,或者使用一些可用的npm模块。

  1. json2typescript
  2. 您可以自己实现相同的libray,请按照link进行操作。