AngularJS 2.0绑定&事件处理

时间:2016-05-04 12:00:12

标签: angularjs

我正在玩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代码出了别的问题。

有人有什么建议吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

你应该能够这样做:

<select [(ngModel)]="zeitraum" (change)="calculate($event.target.value)">
    <option>....</option>
</select>

public calculate(zeitraum)
{
    this.result = zeitraum * 5;
}