如何在保持AngularJS中的内容的同时操纵DOM的类型?

时间:2015-04-08 20:18:48

标签: javascript angularjs dom

我想显示一个事物列表,让用户编辑它们。

使用ng-repeat生成列表。首先,当它被显示时,它应该是纯文本的形式。但是当用户按下相应的编辑按钮时,应将其更改为输入文本字段,内容不变。当用户提交表单时,数据将被保存,输入应更改回纯文本。

这与Angular的思维方式兼容吗?如果是这样,我怎么知道呢?如果没有,在AngularJS中实现这个想法的正确方法是什么?

2 个答案:

答案 0 :(得分:3)

这样的事可能有用:

<ul>
    <li ng-repeat='item in items'>
        <span ng-hide='item.editing'>item.value</span>
        <input type='text' ng-show='item.editing' ng-model='item.value' />
        <button ng-click='item.editing = !item.editing'>Edit</button>
    </li>
</ul>

然后在提交操作集item.editing = false中为项目

中的每个项目设置

答案 1 :(得分:1)

我更喜欢使用角度js的其他方式或方式是在范围内保持当前项目的跟踪,如果您正在编辑的字段数量很大,这将更好用

$scope.currentitem;

将当前项目设置为正在编辑的项目

<button ng-click='currentitem = item'>Edit</button>

现在您可以填写一份表格,如

<input type='text'  ng-model='currentitem.value' />