Angular4是数组引用类型

时间:2017-10-10 10:19:43

标签: javascript angular typescript

我有一个HTTP服务,它返回一些JSON,我订阅了observable,然后将结果分配给两个数组:

var dsMaster = new DS_Master();
var el99TestTableAdapter = new EL_99_TESTTableAdapter();

Cycle 
    var el99TestRow = dsMaster.EL_99_TEST.NewEL_99_TESTRow();
    dsMaster.EL_99_TEST.Rows.Add(el99TestRow);
end Cycle

el99TestTableAdapter.Adapter.Update(dsMaster.EL_99_TEST);

现在每次我更改下拉列表时,我都有相同的对象:

selectedData: any[];
selectedList: any[];

private get() {
    this.dataService
        .Get()
        .subscribe(data => {
            this.selectedData = data;
            this.selectedList = data;
        }, (error) => {
            console.log(error);
        });
}
当我在控制台中签入时,

aka selectedData和selectedList都被过滤了。这是相同的参考还是?我是否必须创建selectedList的新实例并将数据推送到selectedList而不是直接分配?

2 个答案:

答案 0 :(得分:0)

我通过使用Object.assign({},data)复制对象来解决它:

task :run_parallel do |t|
  Parallel.map([:iphone_7,:iphone_8]) {|task| Rake::Task[task].invoke } 
end 

答案 1 :(得分:0)

初始化selectedDataselectedList的值时,您可以使用解构。这将使两个阵列从一开始就彼此分开,在此之后你不必担心它。

private get() {
  this.dataService.Get()
    .subscribe(data => {
      this.selectedData = [...data]; // <=======
      this.selectedList = [...data]; // <=======
    }, (error) => {
      console.log(error);
    });
}