我需要一个包含另一个控制器的控制器的角度示例。
例如,我想在EndpointListController
和EndpointController
之间分割一些逻辑。
EndpointListController
将具有从存储中获取数据的方法,以及适用于整个列表的一些函数,但EndpointController
将具有一个单独端点的逻辑。
使用ng-repeat循环遍历它们并直接在端点上调用方法会非常好,如下所示:
<table ng-controller="EndpointListController">
<tr ng-repeat="endpoint in endpoints">
<td><input type="checkbox" ng-click="endpoint.select()"></td>
<td>{{endpoint.label}}</td>
<td><span class="label label-info">2014-10-10 23:59</span></td>
<td><span class="label label-success">success</span></td>
<td><a href="" class="glyphicon glyphicon-cloud"></a></td>
</tr>
</table>
目前我被迫做这样的事情:
<tr ng-repeat="endpoint in endpoints" ng-controller="EndpointController" endpoint-data="{{endpoint}}">
不太优雅......
我正试图用角度来完成甚至可能的事情吗?可能我看错了,如果有人能指出我正确的方向,我将不胜感激。
答案 0 :(得分:1)
我喜欢像这样的容器指令
这是plunker
您将窗口小部件代码缩短为以下内容:
<end-point-list class="table">
<end-point ng-repeat="ep in endpoints" scope="ep" func="selectEp(scope)">
</end-point>
</end-point-list>
你有两个指令,其中一个需要另一个像
app.directive("endPointList", function(..
return {
controller:'EndpointCtrl',
//
app.directive("endPoint", function(..
require:'?^endPointList',
因此,您可以在子项上使用隔离范围,但可以将任何内容传递回控制器。
我遗漏了连接到任何实际端点的部分,不确定这是否是问题的一部分?