AngularJS多元素指令

cns*_*enj 5 javascript angularjs angularjs-directive

AngularJS支持带有-start-end后缀的多元素指令.官方文档仅提及ng-repeat-startng-repeat-end.其他内置指令是否支持此功能?

例如,这工作正常:

<tbody>
  <tr ng-controller="myController">
    <td>{{firstName}}</td>
    <td>{{lastName}}</td>
  </tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)

这两个{{firstName}}{{lastName}}被替换为它们应有的价值.

但这只能部分起作用:

<tbody>
  <tr ng-controller-start="myController">
    <td>{{firstName}}</td>
  </tr>
  <tr ng-controller-end>
    <td>{{lastName}}</td>
  </tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)

{{firstName}}被正确替换.但是{{lastName}}空的.由于{{firstName}}作品,似乎ng-controller-start被AngularJS认可.这是一个错误,或者我做错了,那{{lastName}}是行不通的?

更新 如果ng-controller-start并且ng-controller-end未得到官方支持.如何ng-controller跨越多个元素?我可以使用comment-style指令吗?如果有,怎么样?

Exp*_*lls 4

指令是否支持这一点取决于其指令定义和multiElement属性。

Angular 的文档似乎没有说明哪些内置指令是多元素的,但Github 搜索似乎表明它只有ngRepeatngSwitchWhenngSwitchDefaultngIfngShowngHide

multiElement您也可以创建自己的指令。