我试图在不使用此处概述的模板的情况下编写内联编辑功能 http://plnkr.co/edit/EsW7mV?p=preview
问问题
8383 次
1 回答
6
您可以将模板的代码放在主页中。
<li ng-repeat="todo in todos" inline-edit="todo.title" on-save="updateTodo(todo.title)" on-cancel="cancelEdit(todo.title)">
<div>
<input type="text" on-enter="save()" on-esc="cancel()" ng-model="model" ng-show="editMode">
<button ng-click="cancel()" ng-show="editMode">cancel</button>
<button ng-click="save()" ng-show="editMode">save</button>
<span ng-mouseenter="showEdit = true" ng-mouseleave="showEdit = false">
<span ng-hide="editMode" ng-click="edit()">{{model}}</span>
<a ng-show="showEdit" ng-click="edit()">edit</a>
</span>
</div>
</li>
这里有一个小提琴:
http://jsfiddle.net/siliconball/QwDn9/2/
也temeber带走templateUrl: 'inline-edit.html'
如果出于任何原因需要控制器范围,请scope: false
在指令中放置。但是随后您将不得不随时跟踪您正在编辑的选项(可能使用 id)。如果这是您的情况,我建议您进行一些重构,您可能知道,这可能不是最佳选择。
如果你的情况,我猜是,你想把它全部写在一个页面中,因为你是通过一些 CGI 或动态内容脚本生成它,并且你不想在不同的页面中编写相同的代码(+脚本接口...),那么我建议也为了正交性而将inline-edit="todo.title"
所有指令内容移动到 中。<div>
于 2013-08-28T08:01:48.647 回答