javascript - 如何跟踪 aurelia 中表单对象的更改以激活恢复按钮

标签 javascript single-page-application aurelia

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

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

这是一个示例代码-

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


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

感谢您的帮助!

最佳答案

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;
}

关于javascript - 如何跟踪 aurelia 中表单对象的更改以激活恢复按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40482217/

相关文章:

javascript - AngularJS 在 ng-repeat 之后添加 jQuery dom 事件监听器

asp.net - 配置 IIS 服务器以使用 Aurelia 框架和推送状态

javascript - 使用 EventAggregator 在 Aurelia 中更新列表

javascript - 如果 XSS 攻击得到缓解,Aurelia 中是否可能存在 CSRF?

javascript - 从 jQuery 中的元素中选择元素

javascript - 在 AJAX 查询 AngularJS 后重新加载 DOM

node.js - 在 FeathersJS 中使用 connect-history-api-fallback 中间件来服务 Vue.js SPA

angular - 如何在 Wordpress 站点上部署 SPA?

java - 为 SPA 前端配置 Spring Boot

javascript - 用css动态添加页面的方法