Pau*_*aul 0 javascript angularjs
我想知道如何在AngularJS中完成这项工作.
拥有此关键字列表和旁边的编辑按钮.
<tr ng-repeat="keyword in keywords">
<td>
<strong id="keyword.name">{{ keyword.name }}</strong>
</td>
<td>
<button ng-click="editKeyword(keyword.name)">Edit</button>
<button ng-click="deleteKeyword(keyword.name)">Delete</button>
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
现在在我的控制器中,我有类似的东西.
$scope.editKeyword = function(name){
console.log(name);
//something done to change the <strong> element into a text input
};
Run Code Online (Sandbox Code Playgroud)
如何通过控制器将"强"元素替换为文本输入字段.这可以在angularJS中完成吗?
谢谢您的帮助.
正如查理所提到的,ng-if会做的.还有'ng-switch',它完全是针对这种情况而制作的.
<tr ng-repeat="keyword in keywords">
<td ng-switch="mode[$index]">
<input ng-switch-when="edit" id="edit" ng-model="keyword.name">
<strong ng-switch-default id="keyword.name">{{ keyword.name }}</strong>
</td>
<td>
<button ng-click="editKeyword(keyword.name, $index)">Edit</button>
<button ng-click="deleteKeyword(keyword.name)">Delete</button>
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
控制器看起来像:
$scope.editKeyword = function(name, index){
$scope.mode[index] = "edit";
console.log(name);
//something done to change the <strong> element into a text input
};
Run Code Online (Sandbox Code Playgroud)
并且在完成编辑后将$ scope.mode [index]更改为其他任何内容.
最简单的方法是直接在模板中使用 ng-if
<td>
<strong id="keyword.name" ng-if="!editMode">{{ keyword.name }}</strong>
<span ng-if="editMode">
<input ng-model="keyword.name">
<button ng-click="save(keyword); editMode = false">Save</button>
<span>
</td>
<td>
<button ng-click="editKeyword(keyword); editMode = true">Edit</button>
<button ng-click="deleteKeyword(keyword)">Delete</button>
</td>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6572 次 |
| 最近记录: |