ng使用内联编辑重复,如何使第一个(或最后一个)元素的editmode=true
ng-repeat with in-line edit, how to make the first (or last element) have editmode = true?
我有一个ng repeat,它在一些项目上循环,并使用editmode参数在标签和输入字段之间切换,让用户在线编辑值。
现在我希望功能是这样的:当用户按下"添加"按钮时,将创建一个新的空(或默认)项目,该项目的编辑模式设置为true(这样,输入文本框将显示保存按钮,而不是带有编辑按钮的标签)。
我在谷歌上搜索了很多,但到目前为止还没有找到明确的答案(
代码如下:
<div ng-repeat="todo in todos">
<span data-ng-hide="editMode">
{{ todo.name }}
</span>
<input type="text" placeholder="{{ todo.name }}" data-ng-show="editMode" data-ng-model="name" data-ng-required />
<button type="submit" class="btn btn-default btn-xs" data-ng-hide="editMode" ng-click="editMode = true">
<span class="glyphicon glyphicon-edit"></span>
</button>
<button type="submit" class="btn btn-default btn-xs" data-ng-show="editMode" ng-click="editMode = false; editTodo(todo._id)">
<span class="glyphicon glyphicon-save"></span>
</button>
<button type="button" class="btn btn-default btn-xs" ng-click="deleteTodo(todo._id)">
<span class="glyphicon glyphicon-remove"></span>
</button>
</div>
提前感谢
您可以通过在ng repeat之外添加一个单独的输入元素来保持简单。
Plunker:http://plnkr.co/edit/YDkzgtOSNpqDehnPkpZe?p=preview
在ng repeat下面添加另一个div元素,如下所示:
<div>
<button ng-show="!addNew" class="btn btn-sm btn-primary" ng-click="addNew=true">Add New</button>
<br>
<div ng-show="addNew">
<input type="text" ng-model="newTodo.name" ng-required />
<button type="submit" class="btn btn-default btn-xs" ng-click="addNewTodo()">
<span class="glyphicon glyphicon-ok"></span>
</button>
<button type="button" class="btn btn-default btn-xs" ng-click="resetNewTodo()">
<span class="glyphicon glyphicon-remove"></span>
</button>
</div>
</div>
不要将editMode用作范围变量。将其用作todo的对象字段(todo.editMode)。对于新的todo对象,将其设置为true。
ngRepeat
为您提供$index
-当前位置,$first
,$last
-因此您可以对照这些位置进行检查,以确定何时到达第一个元素或何时到达最后一个元素。
相关文章:
- 表追加而不附加最后一个元素
- 如何查找流星集合中最后一个元素/对象的id
- 如何在使用Protractor测试时找到ng中继器的最后一个元素
- 在元素数组上循环只会影响最后一个元素
- 推特引导滚动间谍总是选择最后一个元素
- 选择页面上具有特定类的最后一个元素
- 检查 JQuery 每个函数中的最后一个元素
- 选择表中的最后一个元素
- forEach 仅执行数组的最后一个元素
- JavaScript,数组和函数 - 只有数组的最后一个元素有效
- jQuery - 选择具有相同 ID 的组的最后一个元素
- 第一个元素和最后一个元素之间的连续循环
- 在JavaScript数组中查找最后一个元素的计算效率最高的方法
- 将同一个元素追加到两个下拉列表中只会导致最后一个元素被追加
- 如何在jquery中读取Section中的最后一个元素
- 设置'字体大小'jQuery不处理所选Text的最后一个元素
- AJAX只将数组的最后一个元素传递给MVC 5控制器
- 移除嵌套数组的最后一个元素,并完成最后一个数组
- PHP:获取关联数组中最后一个元素
- jquery slideDown()遍历最后一个元素