Angularjs 指令内部不工作<;tr>;这就是ng重复边界

Angularjs 指令内部不工作<;tr>;这就是ng重复边界,angularjs,angularjs-directive,angularjs-ng-repeat,Angularjs,Angularjs Directive,Angularjs Ng Repeat,我有一个表,其中的行通过ng repeat重复。 我正在尝试创建一个模板,为每一行生成列 app.directive(“customtd”,function()){ 返回{ 限制:'E', 模板:“{position.Name}}{{position.Code}}”, 替换:正确, 范围:{ 位置:'=' } } }); 问题是我的自定义td模板根本没有呈现。 在这里,我打算用n个替换,这将根据我的数据对象上的属性数量来决定,但目前我只是想得到一个简单的指令,它将输出两列 :显示此问题的实

我有一个表,其中的行通过
ng repeat
重复。 我正在尝试创建一个模板,为每一行生成列

app.directive(“customtd”,function()){
返回{
限制:'E',
模板:“{position.Name}}{{position.Code}}”,
替换:正确,
范围:{
位置:'='
}
}
});

问题是我的自定义td模板根本没有呈现。 在这里,我打算用n个
替换
,这将根据我的数据对象上的属性数量来决定,但目前我只是想得到一个简单的指令,它将输出两列


:显示此问题的实例和指令代码。

如注释中所述,指令模板应具有单个根元素。因此,我建议您将
tr
元素移动到指令的模板中,如下所示:

正如Pavlo所写,您可以将
tr
元素移动到指令的模板中。另一种选择是使用
td
元素和指令,用您想要使用的模板替换
td

<table>
  <tr ng-repeat="p in positions">
    <td replace-me template="mytemplate.html" position="p"></td>
  </tr>
</table>
mytemplate.html

<td>{{position.Name}}</td>
<td>{{position.Code}}</td>
<td another-my-directive></td>
{{position.Name}
{{position.Code}}

如果您查看控制台,它会抛出一个错误,说明
模板必须只有一个根元素。was:{position.Name}{{position.Code}}现在的问题是表行是否有任何其他列,而不是customtd指令提供的列……用于指令的模板应该有一个根元素。由于在您的情况下存在多个
td
,因此会出现错误。我看不出有什么方法可以将
td
元素封装在根元素中,因为唯一允许的父元素是
tr
,感谢它的工作,我有点失望地看到嵌套在ng repeat中的类型为“element”的指令没有太多用处。你的解决方案奏效了。我通过查看数据对象上的键来扩展它以显示标题。
<td>{{position.Name}}</td>
<td>{{position.Code}}</td>
<td another-my-directive></td>