AngularJS支持带有-start
和-end
后缀的多元素指令。官方文档仅提及ng-repeat-start
和ng-repeat-end
。其他内置指令是否支持此功能?
例如,这可以正常工作:
<tbody>
<tr ng-controller="myController">
<td>{{firstName}}</td>
<td>{{lastName}}</td>
</tr>
</tbody>
{{firstName}}
和{{lastName}}
都被替换为其适当的值。但这仅部分起作用:
<tbody>
<tr ng-controller-start="myController">
<td>{{firstName}}</td>
</tr>
<tr ng-controller-end>
<td>{{lastName}}</td>
</tr>
</tbody>
{{firstName}}
已正确替换。但是{{lastName}}
为空。由于
{{firstName}}
有效,因此AngularJS可以识别ng-controller-start
。 {{lastName}}
不起作用是一个错误,还是我做错了?更新
如果不正式支持
ng-controller-start
和ng-controller-end
。如何使ng-controller
跨多个元素?我可以使用注释样式的指令吗?如果是,怎么办? 最佳答案
指令是否支持此指令取决于其指令定义和 multiElement
属性。
似乎Angular的文档没有说内置指令是多元素的,但是a Github search似乎表明它只是ngRepeat
,ngSwitchWhen
,ngSwitchDefault
,ngIf
,ngShow
和ngHide
。
您也可以使用multiElement
创建自己的指令。