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

AngularJS指令不显示模板

郭云
2023-03-14
问题内容

这是我的AngularJs指令。它原本希望在模板中显示div,但是在运行代码时却什么也没有显示。

这是HTML

<div ng-app="SuperHero">
    <SuperMan></SuperMan>
</div>

这是AngularJS指令

var app = angular.module('SuperHero',[]);
app.directive('SuperMan',function(){
    return{
        restrict:'E',
        template: '<div>Hello fromt Directive</div>'
    }
});

这是演示


问题答案:

声明指令时,您使用了名称SuperMan,但这是错误的。您应该使用superMan,因为它将被转换super-man为元素。

指令名称中的任何大写字母都将转换为连字符,因为元素中未使用大写字母。例如myDirective将翻译为my-directive

正如其他人提到的,AngularJS使用以下标准化规则进行标准化:

从元素/属性的前面去除x-和data-。将:,-或_分隔的名称转换为camelCase。

JavaScript:

var app = angular.module('SuperHero',[]);
app.directive('superMan',function(){
    return{
        restrict:'E',
        template: '<div>Hello fromt Directive</div>'
    }
});

HTML:

<div ng-app="SuperHero">
    <super-man></super-man>
</div>

我更新了您的小提琴以匹配jsfiddle此处的正确语法。



 类似资料:
  • 问题内容: 请参阅相关的jsFiddle 在此文件中,我有两个跨度“ test1”和“ test2”。正在显示跨度“ test2”,但自定义指令“ test1”下面的跨度根本没有显示或未在页面中调用。为什么? 角度代码 问题答案: 在执行此操作时,意味着您正在考虑将指令元素标签视为自动关闭标签。自定义html元素本质上并不是自动关闭的,因此您应该像这样关闭指令的元素 当前您正在消失,因为您尚未关闭

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

  • 问题内容: 我正在尝试使用AngularJS bootstrap.ui显示模式对话框。当我执行$ modal.open(…)时,屏幕变灰,并且我的templateUrl中的html从服务器调用,但是没有模式显示。当我单击灰色区域时,模态“关闭”,即灰色区域消失,屏幕再次看起来正常。我无法弄清楚为什么看不到任何模态屏幕。 我正在尝试遵循本教程: Angular指令 我正在使用Visual Studi

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

  • 问题内容: 在以下情况下如何使用包含。目的是在html(部分)文件中使用标记,而不是在模板中(在指令内)定义标记。 我在这里找到了一个很棒的树指令。( 来源)原文: http //jsfiddle.net/n8dPm/ 我没有在指令中定义模板,而是尝试使用包含在内的内容。我还将Angular更新为1.2.0.rc2。更新时间:http://jsfiddle.net/aZx7B/2/ 低于错误 Ty

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