我想知道是否可以从角度事件中获取有关先前值的信息。我尽量避免将先前的值存储在变量中。我试图在$ event对象中找到合适的属性,但没有找到任何东西。
在我更大的项目中,我从http服务获得了数组。
答案 0 :(得分:2)
是的,这是可能的,但是您必须进行一些更改。
<select class="form-control form-control-sm" (ngModelChange)="actions(selectedValue, $event); selectedValue = $event" [ngModel]="selectedValue">
...
actions(previousValue, newValue) {
this.valueFromAction = newValue; // value chose by user
// selectedValue equals valueFromAction now
// how can i got previous value here?
this.previousValue = `The previous value was ${previousValue}`;
}
工作示例:
https://stackblitz.com/edit/angular-tuinvh?file=src%2Findex.html
答案 1 :(得分:1)
没有看到任何代码...我不确定您的情况如何。
如果您引用的是@Input()
属性,则可以使用传入的SimpleChanges
:
export class CriteriaComponent implements OnInit, OnChanges {
@Input() displayDetail: boolean;
ngOnChanges(changes: SimpleChanges): void {
console.log(changes['displayDetail'].previousValue);
console.log(changes['displayDetail'].currentValue);
}
}
如果使用的是反应形式,则有两个值:原始值和当前值。
如果只希望select元素保留先前的值,则没有内置的方法可以做到这一点。它只有一个value
。
对于较大的项目,您可能需要考虑使用NgRx。它跟踪您的应用程序状态。