Javascript 在AngularJS中的不同控制器中存储控制器实例列表

Javascript 在AngularJS中的不同控制器中存储控制器实例列表,javascript,angularjs,angularjs-controller,Javascript,Angularjs,Angularjs Controller,我需要一个角度的例子,一个控制器包裹另一个。 例如,我想在EndpointListController和EndpointController之间拆分一些逻辑 EndpointListController将具有从存储器获取数据的方法,加上适用于整个列表的一些函数,EndpointController将具有一个单独端点的逻辑 使用ng repeat循环并直接在端点上调用这些方法会非常好,如下所示: <table ng-controller="EndpointListController">

我需要一个角度的例子,一个控制器包裹另一个。 例如,我想在
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}}">
<end-point-list class="table">
  <end-point ng-repeat="ep in endpoints" scope="ep" func="selectEp(scope)">
  </end-point>
</end-point-list>

{{endpoint.label}
2014-10-10 23:59
成功
目前,我被迫这样做:

<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}}">
<end-point-list class="table">
  <end-point ng-repeat="ep in endpoints" scope="ep" func="selectEp(scope)">
  </end-point>
</end-point-list>

不是很优雅


我想用angular完成的事情可能吗?可能我看错了,如果有人能给我指出正确的方向,我将不胜感激。

我喜欢这样的容器指令

这里有一个

您可以将小部件代码缩短为以下内容:

<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}}">
<end-point-list class="table">
  <end-point ng-repeat="ep in endpoints" scope="ep" func="selectEp(scope)">
  </end-point>
</end-point-list>
因此,您可以在子级上隔离作用域,但可以将任何内容传递回控制器


我遗漏了连接到任何实际端点的部分,不确定这是否是问题的一部分?

您希望您的端点$resource在一个工厂中管理该数据1)作为一个可以在任何地方注入的单例,2)由$resource管理的CRUD使该数据可用。我认为您的“端点”应该是一个指令而不是控制器只要使用一个指令,
ng repeat
已经创建了一个子范围是的,这些都是正确的,从技术上讲,您的$resource应该是一个工厂,指令应该像
一样管理您的小部件,并且您的控制器应该属于该指令。然后,每个端点都有一个child指令
。我的5美分,通常使用控制器(在ng重复中)来过滤数据以获得更好的性能,这是最佳实践。尝试在Batarangyes登记,你能添加连接端点的部分吗?嗯,好的,更改了链接。现在端点是您要连接的对象吗?您是否正在制作POST、GET、PUT列表以显示RESTful界面?比如?不,我正在将端点保存到本地存储中,但我想我以后可能需要知道如何使用rest api来完成这项工作,您能否在回答中说明如何完成这项工作?另外,您提到了一个工厂,它是用来检索数据和构造资源的吗?好的,我更新了plunker,为每个项目添加了一个资源。工厂、服务、提供者等都是作为单例的服务,它们是返回$resource的更常见的方法,但在您的情况下,您需要多次1次重复,因此我们将它们放在指令中。