ng-if 只删除我表中的内部 HTML
ng-if only deletes innerHTML in my table
我正在制作一个自定义指令,它将分页并使我的表可排序。 我正在尝试使多种数据类型无需用户费力即可进行排序。 这是我的模板网址中有问题的html:
<tr ng-repeat="row in cndPaginatedObject track by $index">
<td ng-repeat="data in row track by $index" ng-if="!isValidDate(row[cndTableHeaders[$index]])">
{{row[cndTableHeaders[$index]]}}
</td>
<td ng-repeat="data in row track by $index" ng-if="isValidDate(row[cndTableHeaders[$index]])">
{{row[cndTableHeaders[$index]] | date: cndDateFormat}}
</td>
</tr>
我更喜欢使用 ng-if 而不是 ng-show/hide,因为它会不必要地使用 ng-show/hide 复制 DOM 元素,并且不显示它们。 我已经尝试了两种方式,但无论哪种方式我都得到了相同的结果。 带有日期的列的内容不会显示,但 td 本身仍然占用空间。 因此,我最终有三个列标题和三个以上的列。 据我所知,ng-if 应该从 DOM 中删除整个元素。
这是我的另一个意义代码:
scope.isValidDate = (data) => {
var timestamp = Date.parse(data);
return !(isNaN(timestamp));
}
至于cndPaginatedObject,它只是一个包含多个字符串的对象数组。 提前感谢您的任何帮助!
更新:
只是想我还要补充一点,cndTableHeaders实际上是表头。 cndPaginatedObject 使用表头作为每个值的键。 这样,它们就会以正确的顺序显示在表中。
两种方法可以做得更好,而无需产生额外的 dom 并循环重复两次 ng 重复
做你想做的事情的更好方法是
<tr ng-repeat="row in cndPaginatedObject track by $index">
<td ng-repeat="data in row track by $index">
{{(!isValidDate(row[cndTableHeaders[$index]])) ? row[cndTableHeaders[$index]] : row[cndTableHeaders[$index]] | date: cndDateFormat}}
</td>
</tr>
或者使用 ng-if 逻辑在
<tr ng-repeat="row in cndPaginatedObject track by $index">
<td ng-repeat="data in row track by $index"">
<span ng-if="!isValidDate(row[cndTableHeaders[$index]])>
{{row[cndTableHeaders[$index]]}}
</span>
<span ng-if="isValidDate(row[cndTableHeaders[$index]])">
{{row[cndTableHeaders[$index]] | date: cndDateFormat}}
</span>
</td>
</tr>
或者,您可以创建自己的过滤器来检查日期是否有效,然后使用日期过滤器对其进行过滤。
相关文章:
- Javascript内部HTML动画
- Javascript,在body_class()=登录时更改内部html
- 带有输入值的内部HTML
- 内容可编辑分区-根据内部HTML位置的光标位置
- Chrome扩展:是否有一种方法可以运行JavaScript来获取页面上的内部html,并将其保存到扩展中的变量中
- 能够获取元素长度,但不能获取内部 HTML
- 如何在文本框中显示内部 HTML 输出
- 如何通过内部HTML设置图像
- 为什么我不能在变量上使用内部HTML属性
- 获取@Media打印类型的内部 HTML
- Javascript和CSS,内部HTML与外部文件
- 如何在委托中获取列表项中元素的内部HTML
- 敲除数据绑定=“;html:html,内部html点击事件不起作用
- 从内部HTML中删除所有锚标记或链接到 wikipedia.com
- 用jQuery.html更新span内部html在IE中不起作用
- 编译角度代码以便能够执行内部html操作
- 在html中未定义,使用内部html
- jsp内部html中的Javascript静态变量
- 如何为iframe的内部html编写css
- 使用javascript获取内部HTML元素