插值是否适用于事件绑定?

时间:2016-10-25 20:11:49

标签: aurelia-binding

插值是否适用于事件绑定?我尝试了以下但没有成功:

<button type="button" click.delegate="${action}()">${action}</button>

action是一个VM变量,设置为“edit”,“add”,“cancel”之一。存在VM功能:编辑,添加和取消。

2 个答案:

答案 0 :(得分:0)

我在尝试使用事件绑定插值时遇到了麻烦。我有更好的运气将VM作为函数引用。

假设您将操作视为视图模型的属性。您可以根据模型或某些UI操作将该属性的值设置为正确的方法,然后在将该操作作为方法调用时,将调用正确的add / edit / cancel方法。

在视图模型(es6)中:

setAction(method) {
  if(method === "edit") {
    this.action = this.editMethod;
  } else if(method === "add") {
    this.action = this.addMethod;
  } else {
    this.action = this.cancelMethod;
  }
}

editMethod() {
  alert("edit");
}

addMethod() {
  alert("add");
}

cancelMethod() {
  alert("cancel/default");
}
模板内的

<button click.delegate="setAction('edit')">Use Edit Method</button>
<button click.delegate="setAction('add')">Use Add Method</button>
<button click.delegate="setAction('cancel')">Use Cancel Method</button>
<button click.delegate="action()">action</button>

答案 1 :(得分:0)

Jeremy Danyow在aurelia-binding的github问题论坛上提供了答案。

<button click.delegate="$this[action]()">${action}</button>