如何动态加载Angular JS directives/templates

How to load Angular JS directives/templates dynamically

我想动态加载 angular js 指令。

假设我有 3 个指令

<apple data="data"/>

apple.html 将为苹果

提供 UI
<banana data="data"/>

banana.html 将供应 UI 香蕉

<mango data="data"/>

mango.html 将为 UI 提供芒果指令

我想根据我的 JSON 数据加载这些指令之一

数据:{ fruittype:"apple":fruitObj:{“...”}}

UI层

我们有一个 JSP,它实际上会包含水果 angular 标签(即 <apple><banana><mango>

我的问题是在 JSP 逻辑中写什么?

通常使用静态 jsp 我们只写如下内容;

<div ng-app="fruitApp">
<apple></apple>

</div>

您可以在指令范围内定义函数以获取 templateUrl 并将模板包含到指令模板中,如下所示:

app.directive("fruit", function() {

  return {
    scope: {

      data: '=data',
      fruitType: '@type'

    },
    link: function(scope, element, attrs) {
      scope.getTemplate = function() {

        //path to yours templetes
        return scope.fruitType + '.html';
      }
    },
    template: '<div ng-include="getTemplate()"></div>',


  }


})

您可以在此处找到完整的工作演示 http://plnkr.co/edit/VC6NfnYpcKFyhwgOot38?p=preview