一尘不染

AngularJS:从ng-repeat动态分配控制器

angularjs

我正在尝试为包含的模板动态分配控制器,如下所示:

<section ng-repeat="panel in panels">
    <div ng-include="'path/to/file.html'" ng-controller="{{panel}}"></div>
</section>

但是Angular抱怨这{{panel}}是不确定的。

我猜,{{panel}}是不是定义 尚未 (因为我可以附和了{{panel}}在模板中)。

我见过很多关于人们设置ng-controller等于变量的示例,例如:ng- controller="template.ctrlr"。但是,如果不创建重复的并发循环,就无法弄清楚{{panel}}ng- controller需要时如何获得可用值。

PS我也尝试ng-controller="{{panel}}"在模板中进行设置(认为​​到那时它一定已经解决了),但是没有骰子。


阅读 215

收藏
2020-07-04

共1个答案

一尘不染

您的问题是ng-controller应该指向控制器本身,而不仅仅是带有控制器名称的字符串。

因此,您可能希望将$ scope.sidepanels定义为带有指向控制器的指针的数组,如下所示:

$scope.sidepanels = [Alerts, Subscriptions];

这是js小提琴上的工作示例http://jsfiddle.net/ADukg/1559/

但是,当您可能想在ngRepeat中设置控制器时,我发现所有这些情况都很奇怪。

2020-07-04