如何跟踪aurelia中表单对象的更改以激活还原按钮

时间:2016-11-08 08:30:21

标签: javascript single-page-application aurelia

我们正在使用Aurelia创建单页应用程序,我们正在创建/编辑员工详细信息。在编辑员工表单中,我们需要提供还原本地更改的功能(如果有)。但诀窍是如果没有本地更改则禁用按钮

我尝试使用 computedFrom ,但它只观察属性而不是复杂对象。

以下是示例代码 -

import {bindable, computedFrom} from 'aurelia-framework'


export class Employee {
  @bindable employee
  
  @computedFrom('employee')
  enableRevert() {
    return true;
  }
  
  revert() {
   // revert functionality goes here
  }
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

<强> employee.html

<button disabled.bind="!hasChanged()">Revert</button>

<强> employee.js

attached() {
    Object.assign(this.originalEmployee, employee);
}

hasChanged() {
    // Like @Favio said, iterate over an original copy of the employee object.
    for (let p in employee) {
        if (employee[p] !== this.originalEmployee[p]) {
            return true;
        }
    }

    return false;
}