我创建了一个带有角度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
我认为这种行为涉及可观察......但我不知道
提前致谢
答案 0 :(得分:0)
正如olivarra1的评论中所提到的,您正在为两个数组分配_data
。这意味着两个数组都将在同一个对象上运行。
一种解决方案是使用concat。
this.firstArray = _data.concat([])