Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html ng显示和按id获取元素在ng重复表中都不起作用?_Html_Angularjs_Getelementbyid_Angularjs Ng Show - Fatal编程技术网

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使用普通JavaScript
document.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使用普通JavaScript
document.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