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

如何在AngularJS中使用动态模板创建指令?

陈飞
2023-03-14
问题内容

如何使用动态模板创建指令?

'use strict';

app.directive('ngFormField', function($compile) {
return {
    transclude: true,
    scope: {
        label: '@'
    },
    template: '<label for="user_email">{{label}}</label>',
    // append
    replace: true,
    // attribute restriction
    restrict: 'E',
    // linking method
    link: function($scope, element, attrs) {
        switch (attrs['type']) {
            case "text":
                // append input field to "template"
            case "select":
                // append select dropdown to "template"
        }
    }
  }
});



<ng-form-field label="First Name" type="text"></ng-form-field>

这就是我现在所拥有的,它可以正确显示标签。但是,我不确定如何在模板上附加其他HTML。或将2个模板合并为1个。


问题答案:

有类似的需求。$compile做这份工作。(不完全确定这是否是“ THE”方法,仍然可以通过角度进行工作)

http://jsbin.com/ebuhuv/7/edit-我的探索测试。

需要注意的一件事(以我的示例为例),我的要求之一是,type一旦单击“保存”,模板将根据属性进行更改,并且模板非常不同。因此,尽管如此,您获得了数据绑定,如果在那里需要新的模板,则必须重新编译。



 类似资料:
  • 问题内容: 我正在尝试根据范围值使用不同的模板进行指令。 这是我到目前为止所做的,我不知道为什么它不起作用http://jsbin.com/mibeyotu/1/edit HTML元素: 指示: 问题答案: 1)您正在将内容作为属性传递到html中。试试这个: 代替: 2)指令的数据部分正在被编译,因此您应该使用其他东西。代替数据类型,例如datan-type。 链接在这里: http://jsb

  • 问题内容: 是否有任何使用Spring或java替换模板字符串以及值的API。 例如: 其中参数(,)中的形式。 问题答案: 我最喜欢的模板引擎是Apache Velocity 也可以与Spring很好地集成,此处有介绍性文章

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

  • 问题内容: 我经过漫长而艰苦的互联网搜索,没有找到直接的答案。我的问题很简单,我想在标记中添加以下内容: 编辑: 如果是包含我的数据对象的范围变化,并用模板,可能看起来像: 我想用范围为并显示为工具提示的范围编译该模板。据我对 模块的实验所知,将html注入工具提示的方法是使用指令,但是注入的html不会被编译,即,不对角表达式求值,不对指令进行扩展等。 我该如何为此创建指令?我想要一个精简的结果

  • 问题内容: 我正在尝试根据模型动态生成表单输入和关联的操作菜单。我能够传递要使用的字段和菜单,但无法弄清楚如何配置ng- click来调用模型中定义的适当函数。看到小提琴:http : //jsfiddle.net/ahonaker/nkuDW/ HTML: JS: 任何帮助,将不胜感激。我在指令中尝试了以下ng-click方法 我究竟做错了什么?还是有更好的方法来做到这一点(包含要调用的功能的菜

  • 问题内容: 我有这样的设置: 控制器广播事件 指令侦听,然后通过append将其写入DOM,并以此创建指定指令的新元素。 IE浏览器: Angular从未调用过指令 当我检查DOM(并调试)时,我看到Controller 和指令正在执行其工作,并且有新的元素。 什么不见​​了?动态创建这些元素后需要做什么来触发指令调用? 问题答案: 请参阅。您可以类似于以下方式使用此服务: 这将执行新元素的编译和