Html ng显示和按id获取元素在ng重复表中都不起作用?
我正在尝试使用Html ng显示和按id获取元素在ng重复表中都不起作用?,html,angularjs,getelementbyid,angularjs-ng-show,Html,Angularjs,Getelementbyid,Angularjs Ng Show,我正在尝试使用document.getElementById,这在Angular.js中也很容易显示 我有一个表,其中每行动态填充三个按钮,当我单击“选择按钮”时,它会显示为该行隐藏的其余两个按钮 <td> <a ng-click="vm.Select(Survey.Id)" title="{{ 'Select' | translate }}"> <i"><i class="fa fa-edit fa-1x"></i>
document.getElementById
,这在Angular.js中也很容易显示
我有一个表,其中每行动态填充三个按钮,当我单击“选择按钮”时,它会显示为该行隐藏的其余两个按钮
<td>
<a ng-click="vm.Select(Survey.Id)" title="{{ 'Select' | translate }}">
<i"><i class="fa fa-edit fa-1x"></i>
<i></a>
</td>
<td id=id="{{Survey.Id}}" style="visibility:hidden" >hidden">
<a ng-click="vm.Update(Survey.Id)" title="{{ 'Update Visit' | translate }}">
<i"><i class="fa fa-save fa-1x"></i>
<i></a>
</td>
<td id=id="{{Survey.Id}} ng-show="updateicon" >">
<a ng-click="vm.AddTask(Survey.Id)" title="{{ 'Add Task' | translate }}">
<i"><i class="fa fa-plus fa-1x"></i>
<i></a>
</td>
单击“按id获取元素”时,不显示任何按钮,而
ng
为所有行显示按钮。使用AngularJS时,建议使用ng显示/隐藏。实际上,ng if甚至是更好的选择,因为除非条件为true,否则它不会创建DOM元素
无论如何,代码中缺少函数调用中的括号:
<a ng-click="vm.Update({{Survey.Id}})" title="{{ 'Update Visit' | translate }}">
而不是
<a ng-click="vm.Update(Survey.Id)" title="{{ 'Update Visit' | translate }}">
希望这对使用AngularJS时有所帮助,建议使用ng show/hide。实际上,ng if甚至是更好的选择,因为除非条件为true,否则它不会创建DOM元素 无论如何,代码中缺少函数调用中的括号:
<a ng-click="vm.Update({{Survey.Id}})" title="{{ 'Update Visit' | translate }}">
而不是
<a ng-click="vm.Update(Survey.Id)" title="{{ 'Update Visit' | translate }}">
希望这有帮助建议使用
ng show
或ng if
。绝对不建议对AngularJS使用普通JavaScriptdocument.getElementById()
,因为这可能会导致无法预见的问题,因为JavaScript直接操纵DOM
您将看到所有行的按钮,因为每一行都与ng show
上的同一变量updateicon
相关联。您需要某种唯一的ID来访问调查
数组中的每个元素。您可以使用$index
或survey.id
(如果它对每行都是唯一的)来执行此操作
<tr ng-repeat="survey in surveys track by $index">
// Insert cells here
<td>
<a ng-click="vm.Select($index)" title="{{ 'Select' | translate }}"><i class="fa fa-edit fa-1x"></i></a>
</td>
<td id="{{Survey.Id}}" ng-show="canModify[$index]">
<a title="{{ 'Update Visit' | translate }}"><i class="fa fa-save fa-1x"></i></a>
</td>
<td id="{{Survey.Id}}" ng-show="canModify[$index]">
<a title="{{ 'Add Task' | translate }}"><i class="fa fa-plus fa-1x"></i></a>
</td>
</tr>
如果要使用
survey.id
而不是$index
,只需将HTML中的$index
替换为survey.id
,建议使用ng show
或ng If
。绝对不建议对AngularJS使用普通JavaScriptdocument.getElementById()
,因为这可能会导致无法预见的问题,因为JavaScript直接操纵DOM
您将看到所有行的按钮,因为每一行都与ng show
上的同一变量updateicon
相关联。您需要某种唯一的ID来访问调查
数组中的每个元素。您可以使用$index
或survey.id
(如果它对每行都是唯一的)来执行此操作
<tr ng-repeat="survey in surveys track by $index">
// Insert cells here
<td>
<a ng-click="vm.Select($index)" title="{{ 'Select' | translate }}"><i class="fa fa-edit fa-1x"></i></a>
</td>
<td id="{{Survey.Id}}" ng-show="canModify[$index]">
<a title="{{ 'Update Visit' | translate }}"><i class="fa fa-save fa-1x"></i></a>
</td>
<td id="{{Survey.Id}}" ng-show="canModify[$index]">
<a title="{{ 'Add Task' | translate }}"><i class="fa fa-plus fa-1x"></i></a>
</td>
</tr>
如果要使用survey.id
而不是$index
,只需将HTML中的$index
替换为survey.id