Angular 组件:没有模板替换选项?

Angular Component: no template replace option?

在新的 AngularJS 1.5 组件概念中似乎没有 "replace" 选项(就像指令一样)。

如果我想将 table 行 <TR> 元素作为组件,您有什么建议?就有效HTML而言是不可能的吗?

实例:mailBox组件内部有mail组件。通过标记 mail-box-component 是 table,而 mail-box 是 tr.

<mail-box>
    <mail ng-repeat="mail in $ctrl.mails" mail="mail"></mail>
<mail-box>

UPD:关于指令的相关讨论 - Why is replace deprecated in AngularJS?

由于 replace: true 标志已被弃用,这不再是-angular-方式

Why is replace deprecated in AngularJS?

replace: true 标志提出的问题多于解决方案,这就是它被删除的原因。 因此,您不能再以这种方式构建指令并提供有效的 table-tr-td 标记。

然而,这并没有看起来那么糟糕有两个原因:

  1. 没有table、tr、td等,你可以做任何你想做的事。 只使用 div、span 等元素和一些 css

  2. web-components(和指令是第一次尝试模拟 它们)并不意味着代表标记的如此小的片段。 实际上,它们更多地被认为是功能齐全的组件 做某事。所以无论你想用你的tr做什么 认为围绕它构建一个元素指令是值得的,它 可能不是。

也许,您可以使用属性指令代替:

<tr my-mail-directive></tr>

而您的 my-mail-directive 在 tr 元素上发挥了神奇作用