Aurelia版本的Angular的改变

时间:2016-07-12 23:55:45

标签: javascript angularjs aurelia aurelia-binding

我正在将一个Angular应用程序移植到Aurelia作为学习练习,我不知道如何重新创建Angular ng-change行为。

有一个元素在更改时会触发javascript回调。我不知道如何在Aurelia做到这一点。或者我应该只使用HTML5?

2 个答案:

答案 0 :(得分:7)

要将方法/表达式绑定到事件,请使用event.delegate="expression",替换" event"使用实际的事件名称,例如changeinput

以下是一个例子:https://gist.run?id=a3ced6a08842a421a715c7df068b41d5

<强> app.html

<template>
  <form change.delegate="changeCount = changeCount + 1"
        input.delegate="incrementInputCount($event.target)">
    <p>
      This form has changed ${changeCount} times.
      The input event has fired ${inputCount} times.
    </p>
    <input type="text" placeholder="type something...">
    <input type="text" placeholder="type something...">
    <input type="text" placeholder="type something...">
  </form>
</template>

<强> app.js

export class App {
  changeCount = 0;
  inputCount = 0;

  incrementInputCount(inputElement) {
    console.log(inputElement.value);
    this.inputCount++;
  }
}

注意:如果事件没有冒泡(例如焦点/模糊),请使用event.trigger并将绑定直接放在将触发事件的元素上。例如,<input blur.trigger="doSomething()">

答案 1 :(得分:1)

change.delegate="someViewModelMethod()"