2017-09-06 27 views
1
saveOccuraces(currentFrequency: Frequencies) { 
    var freq = new Frequencies(); 
    freq = currentFrequency; 
    // freq.occurance = currentFrequency.occurance; // <--Problem is here 
    this.selectedFrequencies.push(freq); 
} 
<md-input-container> 
    <input type="number" [(ngModel)]="currentFrequency.occurance" mdInput placeholder="Every" name="occurance"> 
</md-input-container> 

<button md-icon-button (click)="saveOccuraces(currentFrequency)"> 
    <md-icon>add</md-icon> 
</button> 

在上面的代碼,如果我執行,因爲它是所有發生值與新的更新,如果我評論freq=currentFrequency;線和未註釋freq.occurance = currentFrequency.occurance;那麼它工作正常。代替參考添加對象值到新的變量類型腳本

是否有任何替代推動與值對象只(withou

+1

你是什麼意思(withou ?? – k11k2

+0

你在說什麼https://docs.angularjs.org/api/ng/function/angular.copy – InferOn

+0

[angular.copy()和賦值(=)]之間的差異可能重複(https://stackoverflow.com/questions/29749433/angular-copy-and-assignment之間的差異) – InferOn

回答

1

可以在Frequencies創建一個構造像下面

Frequencies(frequencies:Frequencies){ 
this.occurance = frequencies.occurance; 
} 

更改這樣的代碼

saveOccuraces(currentFrequency:Frequencies){ 
     var freq= new Frequencies(currentFrequency); 
     this.selectedFrequencies.push(freq); 
    } 

另類方式使用Object.Assign()

saveOccuraces(currentFrequency:Frequencies){ 
      var freq= Object.assign(new Frequencies(),currentFrequency); 
      this.selectedFrequencies.push(freq); 
     } 
+0

非常感謝,第二個解決了我的問題 –