javascript - 表格外的表格 "jump"中的angularjs ng-repeat?

标签 javascript html angularjs

所以我基本上是用嵌套的 ng-repeat 创建一个 table

<div ng-controller="PresetManageController">
  <table>
    <in-preset ng-repeat="preset in presetManage.presets"></in-preset>
  </table>
</div>

指令in-preset的模板是

<tr>
  <td>{{preset.name}}</td>
  <td>一些属性</td>
  <td>
    <a href="">编辑</a>
    <a href="">删除</a>
  </td>
</tr>

指令声明

module.directive('inPreset', function() {
  return {
    restrict: 'E',
    replace: true,
    templateUrl: 'scripts/directive-templates/in-preset.html'
  }
});

但是当我打开页面时,我发现所有的tr都跳到了表格之外。

trs jumped outside table

如果我将 table 更改为 div,则它可以正常工作。我检查了所有 html 标签是否完全关闭。很难调试这个问题。有什么线索吗?

最佳答案

问题是因为您正在使用 ng-repeat在自定义指令上(设置为替换)。 ng-repeat 和替换指令 ( see related post ) 有一些奇怪的行为。

尝试离开<tr>在您的 html 中,将您的指令改为在属性上。

html

<table>
  <tr in-preset ng-repeat="preset in presets"></tr>
</table>

js

.directive('inPreset', function() {
  return {
    restrict: 'A',
    template: '<td>{{ preset.name }}</td>',
  };
})

参见 Fiddler

关于javascript - 表格外的表格 "jump"中的angularjs ng-repeat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26877084/

相关文章:

javascript - 我将如何制作我的 Bootstrap 导航栏 "collapse"?

javascript - 在数组中存储 Highcharts 问题

javascript - AngularJS - 跨 Controller 广播

javascript - AngularJS 中文本区域占位符内的不间断空格

javascript - Highcharts 工具提示 x 轴字体大小

javascript - 在react js中根据图像映射数据

javascript - 电子邮件验证接受表单中的两个点

html - 动态创建复选框列

html - 悬停在主 div 上时使另外两个 div 改变颜色

html - CSS:Divs 意外重叠