javascript - 更改没有名称的属性的处理程序

标签 javascript aurelia

考虑以下列表:

fields.html

<div repeat.for="f of fields">
    ${f.name}: <input value.bind="f.value">
</div>

fields.js

class Fields
{
    fields = [{
        name: "First name",
        value: "Jack"
    }, {
        name: "Surname",
        value: "Giant slayer"
    }];
}

我想在更改后保存列表(可能在几秒钟后,如 throttle )。一旦其中一个文本框发生更改,如何将处理程序引入 Fields 类以调用?我不是在谈论 blur 事件处理程序。

最佳答案

在触发 DOM input 事件时保存。使用 debounce 绑定(bind)行为来限制保存速率。

这是一个例子:https://gist.run?id=26ea2f5e3a2c35ecd96ff9aa579a893f

app.html

<template>
  <form input.delegate="save() & debounce:500">
    <label repeat.for="f of fields">
      ${f.name}: <input value.bind="f.value">
    </label>
  </form>

  <pre><code>${log}</code></pre>
</template>

app.js

export class App {
  fields = [
    { name: "First name", value: "Jack" },
    { name: "Surname",    value: "Giant slayer" }
  ];

  log = '';

  save() {
    this.log += `Saved: ${JSON.stringify(this.fields)}\n`;
  }
}

关于javascript - 更改没有名称的属性的处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40095221/

相关文章:

javascript - 在拖放中中断跨度

javascript - Webpack 5 模块联合 - 远程模块中的 Hook - 不起作用

javascript - Aurelia:单例 View 中的静态自定义元素

node.js - 无法为 Node.js 安装 clean-webpack-plugin

javascript - Aurelia/ES6 类和属性定义,管道工语法错误

aurelia - 电子邮件验证通过,无需域名扩展

javascript - 为什么 onchange 事件不会在第一次更改时触发?

javascript - Flash 和 JavaScript 交互,加载时间问题

javascript - react - JavaScript : How to properly position a dropdown menu on top of a Google Map

html - Bootstrap 词缀不适用于 aurelia 中的数据属性