javascript - 无法动态地使内容可编辑以在 angular2+ 中进行内联编辑
问题描述
我是个问题
以下是我的 json 数据:
info = [{
'id':1,'name': 'mr.x',
},{
'id':2,'name': 'mr.y',
},{
'id':3,'name': 'mr.z',
},{
'id':4,'name': 'mr.a',
}]
我在模板中显示这个
<div *ngFor="let x of info;let i = index">
<div id="{{x.id}}">
<div id="{{x.id}}">
</div>
<span [contentEditable]="content" id="{{x.id}}" > {{x.name}}</span>
<button id="edit" (click)="edit(x.id)">edit
</button>
这里我正在尝试的是对于每个跨度元素 {{x.name}} 是显示我想更改该名称,所以我所做的是
edit(id){
this.content = true;
}
它不工作没有可编辑的
现在我的问题是如何根据点击事件使其可编辑,以及如何获取跨度的值并显示更改,因为更改必须发送到服务器并显示
我的堆栈链接
解决方案
这里的技巧是您需要创建一个基于索引的动态属性,即PropertyName[i]
。
代码:
hideElement = {}; // declare in .ts file
html:
<div *ngFor="let x of info;let i = index">
<div id="{{x.id}}">
<div id="{{x.id}}">
</div>
<span [hidden]="!!hideElement[i]" id="{{x.id}}"> {{x.name}}</span>
<input [(ngModel)]='x.name' type="text" [hidden]="!hideElement[i]" />
<button id="edit" [hidden]='hideElement[i]' (click)="hideElement[i]=true">edit </button>
<button id="save" [hidden]='!hideElement[i]' (click)="hideElement[i]=false">save </button>
</div>
工作样本在这里
推荐阅读
- excel - 使用 VBA 根据父工作表中的条件将数据附加到相关工作表
- html - 有没有办法读取excel列中的图像文件路径并将此文件路径转换为html中的图片?
- logging - 获取 Kubernetes FlexVolume 日志
- javascript - Rhino 引擎中的 ECMA 支持
- elasticsearch - 带冒号的 Elasticsearch 查询
- mysql - SQL:选择属于所有指定类型的所有电影
- javascript - Ckeditor5 + Angular:如何显示通过编辑器添加的视频
- machine-learning - 在 AdaBoostClassifier 中使用 scikit-learn 的 MLPClassifier
- c# - 将对象实例设置为另一个对象的实例不起作用
- vba - 范围不能被删除word中的错误