当前位置: 首页 > 面试题库 >

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

卢俊发
2023-03-14
问题内容

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

<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}}"在模板中进行设置(认为​​到那时它一定已经解决了),但是没有骰子。


问题答案:

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

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

$scope.sidepanels = [Alerts, Subscriptions];

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

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



 类似资料:
  • 问题内容: 我花了一段时间试图找到一个优雅的解决方案,而我却找到了一个“可行”的解决方案,它感觉不是最简单或正确的做事方式。 所以,我的问题是…如何动态加载指令!在某些情况下,以下是我希望我能摆脱它的方式!除了模板加载之外,我没有包含路由或其他任何内容,而是为下面的控制器分配了ng- controller。 app.js template.html 任何人都可以提供的建议将不胜感激,如果我做任何明

  • 我有一个动态JSON,其中包含名称列表,它还包含子名称作为子集。如何使用angularJS ng重复在超文本标记语言UI中显示它 示例动态JSON是 注意:JSON是基于请求生成的。子数组是可选的,它可以包含长度“n”

  • 问题内容: 如何在ng-repeat中使用动态名称命名表单? 我想动态命名每种形式。例如,将$ index添加到表单名称。我该如何实现?我在ng-repeat上尝试了ng-init,但是没有用。 问题答案: 您可以这样做: 编辑 : 您也可以使用,如下所示: 如果仅基于表单的有效性应用类,则可以将样式应用于自动添加的类,例如:

  • 问题内容: 我用一个简单的方法来生成国家列表。每个列表中都有一个可以扩展和折叠的隐藏行/ div。 我面临的问题是,在将Angular引入应用程序之前,我手动对元素的ID进行了硬编码,例如: 新代码使用: 如何在我的帐户中分配动态/增量ID ? 问题答案: 您可以使用 https://docs.angularjs.org/api/ng/directive/ngRepeat

  • 问题内容: 我想基于我们加载的配置动态指定一个控制器。像这样: 我该怎么做呢?我以为这很容易,但是我似乎可以找到一种方法。 问题答案: 您想要做的是在调用其他指令之前先运行另一个指令,从某个模型获取控制器名称,然后删除新指令并添加指令,然后重新编译元素。 看起来像这样: 然后,您可以在模板中使用它,如下所示: 使用这样的控制器: 可能有一种插值的值()而不是解析它()的方法,但是由于某种原因,我无

  • 问题内容: 嗨,我有一个简单的ng-repeat-start和end用例,并且工作正常,当我想添加一个内部ng-repeat时出现了问题。这是我的代码 内部ng-repeat到td元素中不起作用,在检查html源代码时看到ngRepeat注​​释,但未创建td元素。 我的丑陋的解决方法(假设我知道该向量的大小)是: 问题答案: 从那时起,我不确定是否使用角度1.1.6,并且在1.1.5或1.0.7