将信息传递给ng重复ng包含范围 我对AngularJS应用程序中的一个特殊问题非常恼火

将信息传递给ng重复ng包含范围 我对AngularJS应用程序中的一个特殊问题非常恼火,angularjs,controller,ng-repeat,Angularjs,Controller,Ng Repeat,基本上,我有一个控制器“PageCtrl”,它通过一个服务拉入一个数据列表。数据保存在PageCtrl中。一切都很好-到目前为止还不错 现在我的问题是:对于PageCtrl中的每个数据对象,我使用ng repeat来显示刚刚获取的每个数据 在每个ng重复中,我使用ng include获得正确的模板,这取决于每个对象中的数据(基本上,数据是要显示在页面上的元素列表。每个元素都有自己的控制器) 当ng include创建新闻范围时,所有创建的子作用域/控制器都可以访问数据,因为它位于$parent

基本上,我有一个控制器“PageCtrl”,它通过一个服务拉入一个数据列表。数据保存在PageCtrl中。一切都很好-到目前为止还不错

现在我的问题是:对于PageCtrl中的每个数据对象,我使用ng repeat来显示刚刚获取的每个数据

在每个ng重复中,我使用ng include获得正确的模板,这取决于每个对象中的数据(基本上,数据是要显示在页面上的元素列表。每个元素都有自己的控制器)

当ng include创建新闻范围时,所有创建的子作用域/控制器都可以访问数据,因为它位于$parent controller-PageCtrl中

所有这些都可以正常工作,除了在ng repeat/ng include中创建的每个控制器都需要知道父级数据列表中的哪个对象需要用于显示

基本上,在我的ng repeat中,我希望使用$index并将其传递给ng include中包含的控制器。但我不能这样做!如果我使用ng init,ng init中的代码将在父作用域上执行,即我的原始PageCtrl

在不使用指令的情况下,如何将信息传递给控制器,使其知道应该使用其父对象中的哪些数据对象

以下是在MainCtrl中循环数据的代码:

 <div ng-repeat="element in elements" >
      <ng-include src=" GetTemplateFromElement(element.type) " ng-init=" SetElementNo($index); "></ng-include>
 </div>

在代码段中,我在MainCtrl上调用GetTemplateFromElement,它返回要包含的视图。在包含的视图中,我引用哪个控制器应该执行此工作。我尝试使用$index告诉包含的控制器应该使用数据中的哪个索引。当然,代码是在MainCtrl范围内执行的。视图示例:

<div ng-controller="ElementDocumentCtrl">
    <div ng-bind-html-unsafe="element.document_content"></div>
 </div>

在代码段中,“element.document\u content”位于ElementDocumentCtrl的作用域中,它从其父级PageCtrl提取数据

我如何告诉包含在PageCtrl(它的父控制器)的数据列表中的哪个索引的指令它应该拾取

请不要告诉我我需要做所有的指示:)


谢谢,伙计们。

也许我不完全理解你们的问题,但从文档中,$index、$first、$middle和$last都显示在ng repeat children的本地范围内


我用了一个例子来证明这一点。ChildCtrl从父级访问$index,以获取它正在访问父级中哪个元素的索引

如果你能创建一个JSFIDLE而不是写一本小说,那会更有帮助。我知道,但它是一个有很多文件的相当大的应用程序。问题本身只是其中的一小部分。。我会试着一起工作Hi Rajasaur,谢谢,我会尽快查看!非常感谢你的帮助