角度2 - 拼接阵列和可观察量

时间:2017-04-04 10:36:42

标签: arrays angular observable

我创建了一个带有角度2的表单...我有一个函数可以返回一个对象数组

public getList( ){
return this.http.get(`${APPCONSTANTS.API_PATH}/list/`)
  .map(res => <myType[]> res.json())
  .catch(error => {
        console.log(error);
        return Observable.throw(error);
    });}

填充在类

中声明的2个数组
export class ContestAdmComponent {

public firstArray [] = [];
public secondArray[] = [];

test(){
this.myService.getList()
    .subscribe(
        _data => {
            this.firstArray = _data;
            this.secondArray= _data;
        },
        e => console.log('onError: %s', e),
        () => console.log('onCompleted')
    );
 }

}

现在我必须清空第一个数组(它被UI修改)并用第二个数据重新填充它,但是当我删除firstArray时,secondArray也变空了

private testDelete(){
    console.log('pre delete : ' + this.secondArray.length)
    this.firstArray .splice(0,this.firstArray.length);
    console.log('post delete : ' + this.secondArray.length)
 }

预删除:154 删除后:0

我认为这种行为涉及可观察......但我不知道

提前致谢

1 个答案:

答案 0 :(得分:0)

正如olivarra1的评论中所提到的,您正在为两个数组分配_data。这意味着两个数组都将在同一个对象上运行。

一种解决方案是使用concat。

this.firstArray = _data.concat([])