将html ID与angularJS一起使用

Use html ID with angularJS

本文关键字:一起 angularJS html ID      更新时间:2023-09-26

我有四个使用ng repeat填充数据的表,并且我有一些验证来根据单选按钮的选择显示一个或另一个表。

我在名为"fixtable"的表中调用一个CSS id。问题是,如果我删除它工作的任何表的ng-if-,则头是固定的,但我需要这些验证来显示或隐藏表。

看起来angular不认识"id"属性,或者我不知道。

有什么帮助吗?我很着急。

<div  ng-if="topTable.value === 'topCategory'" ng-show="loadViewCategories">
  <table class="table" id="fixTable">
      some code
  </table>
<div  ng-if="topTable.value === 'topBrand'" ng-show="loadViewBrand">
  <table class="table" id="fixTable2">
      some code
  </table>

在HTML中,我调用我的函数,使fiexd头像一样

<script>
 $(document).ready(function() {
    $("#fixTable").tableHeadFixer();
    $("#fixTable2").tableHeadFixer();
    $("#fixTable3").tableHeadFixer();
    $("#fixTable4").tableHeadFixer();
 });
</script>

我有一些CSS,可以让我的表一直滚动到正确的

    #fixTable {
    width: 2700px !important;
}
#fixTable2 {
    width: 2700px !important;
}
#fixTable3 {
    width: 2700px !important;
}
#fixTable4 {
    width: 2700px !important;
}

这是因为ng-if="topTable.value === 'topCategory'"从DOM中删除了表,所以当您调用$("#ID").tableHeadFixer();时,它对DOM中不存在的表不起作用。

您有两种解决方案:

  1. 删除ng-if,改为使用ng-show,因为ng-show将表保留在DOM中,只会使其不可见。请注意,这两个指令之间还有其他重要的区别,您可以在这个线程上了解更多关于它们的信息
  2. 每次更改topTable.value时,调用tableHeadFixer()使其工作