我正在玩AngularJS 2.0
我非常简单的场景包含一个绑定到组件属性属性的选择框,如下所示:
<select [(ngModel)]="zeitraum" [value]="zeitraum" (change)="calculate()">
<option>....</option>
</select>
组件类如下所示:
export class MyComponent
{
constructor
(
public zeitraum: number = 10,
public result: number = 0
)
{
}
public calculate()
{
this.result = this.zeitraum * 5;
}
}
所以,我有一个带有几个选项的选择框,我想要以下行为:当选择一个新选项时,调用calculate()方法,该方法简单地乘以&#39; zeitraum&#39;按5,然后设置&#39;结果&#39;的值然后显示在页面上。
<h1>Result: {{result}}</h1>
问题如下:调用计算方法,但它使用&#39; zeitraum&#39;的 OLD 值。 (即,选择之前的值)。
我想知道在这里使用哪个事件。我通过使用(mouseleave)和(mousemove)事件尝试了一种解决方法,这看起来很有效,但它确实很脏,所以应该有一个更优雅的解决方案。
要么我使用了错误的事件,要么我的Angular代码出了别的问题。
有人有什么建议吗?非常感谢。
答案 0 :(得分:0)
你应该能够这样做:
<select [(ngModel)]="zeitraum" (change)="calculate($event.target.value)">
<option>....</option>
</select>
public calculate(zeitraum)
{
this.result = zeitraum * 5;
}