我正在将一个Angular应用程序移植到Aurelia作为学习练习,我不知道如何重新创建Angular ng-change行为。
有一个元素在更改时会触发javascript回调。我不知道如何在Aurelia做到这一点。或者我应该只使用HTML5?
答案 0 :(得分:7)
要将方法/表达式绑定到事件,请使用event.delegate="expression"
,替换" event"使用实际的事件名称,例如change
或input
。
以下是一个例子: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()"