1
我已經創建了一個形式與角2 ...我有一個返回我對象的陣列的功能角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
我覺得這behaviuor關注觀察到的......但我不知道
在此先感謝
不,這是因爲觀測的,而是因爲JS的語義:FirstArray和SecondArray是「指向」同一個數組,所以當你改變一個,它會反映在其他。你必須在分配它時創建該數組的副本......有很多方法,最快:'this.firstArray = _data.concat([])' – olivarra1