当前位置:  开发笔记 > 编程语言 > 正文

使用Angular2中的接口将对象推入新数组

如何解决《使用Angular2中的接口将对象推入新数组》经验,为你挑选了1个好方法。

我从Angular2中的服务中检索对象列表.

点击后我想把我的ngFor中的对象放到一个新的数组上(使用相同的界面).

我能够很好地显示列表中的项目.我也能够显示我在控制台中选择的项目,但是我无法将此对象推送到具有相同界面的新阵列中.

我的界面:

export interface Item {
    id: string,
    name: string,
    icon_url: string,
    exterior: string,
    type: string,
    tag: string,
    addedClass: string,
    selected: boolean
}

我的组件:

import {Component, OnInit, DoCheck} from 'angular2/core';
import {Item} from './../interfaces/interfaces.ts';
import {ItemService} from './../services/item.service.ts';


@Component({
    template: `
        

Add item

  • {{item.name}}
` }) export class AddTradeComponent implements OnInit { public items: Item[]; public selectedItems: Item[]; constructor(private _itemService: ItemService) { } getUserItems() { this._itemService.getUserItems().then(userItems => this.items = userItems); } ngOnInit() { this.getUserItems(); } onSelect(item) { console.log('items ', item); this.selectedItems.push(item); } }

我得到的错误:

评估"点击"时出错

TypeError:无法读取未定义的属性"push"

记录对象工作正常,我只是无法将其推送到this.selectedItems.



1> pixelbits..:

您没有初始化阵列.在声明成员变量时初始化数组:

public items: Item[] = [];
public selectedItems: Item[] = [];

或者在构造函数中初始化它们:

constructor() {
    this.items = [];
    this.selectedItems = [];
}

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有