在AngulaJS中创建指令时,我可以为元素命名有什么限制吗?

时间:2014-08-22 06:02:40

标签: angularjs

我想为这段代码创建一个指令。我想将当前xxxxx的文本作为元素内部的参数传递。不太清楚如何做到这一点。

    <div class="gridFooter" ng-show="home.dataRetrieved">
        <span ng-show="(home.grid.data).length">{{ (home.grid.data).length + " rows retrieved - " +  home.grid.view.length + " displayed" }}</span>
        <span ng-show="!(home.grid.data).length">xxxxx</span>
    </div>

我希望使用restrict: 'E'

有人可以告诉我,将元素命名为<grid-footer>是否有效,如果不是,那么HTML元素名称是否区分大小写?例如,我可以将元素命名为<gridFooter>吗?

2 个答案:

答案 0 :(得分:2)

答案应该在这里:

Creating Custom Directives

  

Angular规范化元素的标记和属性名称,以确定哪些元素与哪些指令匹配。我们通常通过其区分大小写的camelCase规范化名称(例如ngModel)来引用指令。 但是,由于HTML不区分大小写,我们通过小写形式引用DOM中的指令,通常使用DOM元素上的划线分隔属性(例如ng-model)。

我们应该使用命名(在html中),如:

<grid-footer>
<grid:footer>

因为HTML不区分大小写 - 这是如何指示角度如何将其转换为名为 gridFooter

的指令的唯一方法

答案 1 :(得分:2)

指令的命名是在camelCase中完成的,当使用时,名称是小写的,并且在之前的大写字母之前插入破折号。

因此,如果您将指令命名为myDirective,则标记为<my-directive>

这应该在documentation

中详细介绍

在HTML中,标记名称不区分大小写。