javascript - 如何动态更改 aurelia 中的模板/单击以编辑表格行?

标签 javascript aurelia

通过敲除,我可以动态更改表格行的模板,这样当我单击它时,该行将变为可使用编辑模板进行编辑。 没有导航,没有路由,只是为行分配一个新模板。 我如何在 aurelia 中执行此操作?

最佳答案

下面是如何使用 if 绑定(bind)命令完成此操作:

https://gist.run/?id=2408b065ecfac30ff2b1034ea8da800d

screenshot


代码:

应用程序.js

export class App {
  editing = null;
  
  planets = [
    { name: 'Mercury', diameter: 3032, distance: 35983610 },
    { name: 'Venus', diameter: 7521, distance: 67232360 },
    { name: 'Earth', diameter: 7926, distance: 92957100 },
    { name: 'Mars', diameter: 4222, distance: 141635300 },
    { name: 'Jupiter', diameter: 88846, distance: 483632000 },
    { name: 'Saturn', diameter: 74898, distance: 888188000 },
    { name: 'Uranus', diameter: 31763, distance: 1783950000 },
    { name: 'Neptune', diameter: 30778, distance: 2798842000 }];
  
  edit(planet) {
    this.editing = planet;
  }
}

应用.html

<template>
  <table>
    <thead>
      <tr>
        <td>Planet</td>
        <td>Diameter (mi)</td>
        <td>Distance to Sun (mi)</td>
      </tr>
    </thead>
    <tbody>
      <tr repeat.for="planet of planets" click.delegate="edit(planet)">
        <!-- read-only mode -->
        <td if.bind="editing !== planet">${planet.name}</td>
        <td if.bind="editing !== planet">${planet.diameter}</td>
        <td if.bind="editing !== planet">${planet.distance}</td>
        
        <!-- edit-mode -->
        <td if.bind="editing === planet"><input value.bind="planet.name" type="text"></td>
        <td if.bind="editing === planet"><input value.bind="planet.diameter" type="number"></td>
        <td if.bind="editing === planet"><input value.bind="planet.distance" type="number"></td>
      </tr>
    </tbody>
  </table>
</template>

CSS:

thead {
  font-weight: bold;
}

tbody > tr > td {
  cursor: pointer;
}

关于javascript - 如何动态更改 aurelia 中的模板/单击以编辑表格行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31830859/

相关文章:

asp.net - 由于 HttpPlatformHandler,Aurelia 无法在 azure 上加载?

aurelia - 在 Aurelia 中何时使用 require 以及何时使用 import?

aurelia - Aurelia中父子自定义元素的双向绑定(bind)

javascript - 如何使用 Aurelia 绑定(bind)到 repeat.for 中的对象

javascript - 如何在我的 React Native 应用程序中获得与 postman GET 中相同的内容?

javascript - 以某个字符串开头的单词的正则表达式 (javascript)

javascript - 未调用 Checkbox 的 onChange 函数

webpack - 在 webpack 构建期间使用 aurelia-webpack-plugin 时出现意外的 token 错误

javascript - 所见即所得 - 将小部件从工具栏拖放到 Canvas 中

javascript - 在 Jquery 中选择 nth-child 并且条件格式不起作用