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

在AngularJS中的ng-repeat指令中动态显示模板?

益楷
2023-03-14
问题内容

我正在尝试根据当前项目动态显示ng-repeat指令中的多个模板之一。

我的JSON数据如下所示:

data: {
    groups: [
        {
            name: "Group 1",                
            sections: [
                { name: "Section A" },
                { name: "Section B" }
            ]
        },
        {
            name: "Group 2",                
            sections: [
                { name: "Section A" },
                { name: "Section B" }
            ]
        }
    ]
}

我的目标是动态渲染数据树,每个组包含多个部分。这些组都将具有相同的模板,但是每个部分都应基于名称字段具有自己的模板。

假设顶层HTML是:

<div ng-repeat="group in groups">
    {{ group.name }}
    <div ng-repeat="section in sections">
        <!-- Dynamic section template used -->
    </div>
</div>

理想情况下,每个部分还需要具有自己的范围数据和与其关联的控制器。我很幸运用Knockout构建了这种类型的系统,但是我想了解Angular的做事方式。


问题答案:

您可以执行以下操作:

<div ng-repeat="group in groups">
    {{ group.name }}
    <div ng-repeat="section in sections" ng-include="getIncludeFile(section)">
        <!-- Dynamic section template used -->
    </div>
</div>

然后在您的控制器中:

$scope.getIncludeFile = function(section) {
    // Make this more dynamic, but you get the idea
    switch (section) {
        case "Section A":
            return 'partials/sectiona.html';
        case "Section B":
            return 'partials/sectionb.html';
    }
}

然后,您的sectiona.html可能如下所示(具有特定于该文件的控制器):

<div ng-controller="SectionAController">
    <!-- HTML in here, and can bind straight to your SectionAController -->
</div>


 类似资料:
  • 我正在尝试根据当前项目动态显示ng-重复指令中的几个模板之一。 我的JSON数据如下所示: 我的目标是动态呈现数据树,每组包含多个部分。这些组都将具有相同的模板,但每个部分都应基于名称字段具有自己的模板。 假设顶层HTML为: 理想情况下,每个部分还需要有自己的作用域数据和与之关联的控制器。我很幸运地使用Knockout构建了这种类型的系统,但我正在尝试理解Angular的做事方式。

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

  • 问题内容: 我正在尝试在ng-repeat中动态添加不同的指令,但是输出没有被解释为指令。 我在这里添加了一个简单的示例:http : //plnkr.co/edit/6pREpoqvmcnJJWzhZZKq 控制器: 指示: HTML: 如何通过ng-repeat 使角度拾取在中指定的指令? 问题答案: 我知道这是一个老问题,但是google将我带到了这里,但我不喜欢这里的答案。所以我创建了这个

  • 本文向大家介绍AngularJS基础 ng-repeat 指令简单示例,包括了AngularJS基础 ng-repeat 指令简单示例的使用技巧和注意事项,需要的朋友参考一下 AngularJS ng-repeat 指令 AngularJS 实例 循环输出多个标题: 定义和用法 ng-repeat 指令用于循环输出指定次数的 HTML 元素。 集合必须是数组或对象。 语法 <element ng-

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

  • Angularjs ng用div标记重复。。我有一个带有div标记的代码,如图所示。。我想重复整个div,在第二个循环中img src是不同的。。如何使用angularjs中的ng repeat指令执行此操作?