2017-09-06 37 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

非常感谢,第二个解决了我的问题 –