如何配置此自定义标记?

时间:2015-10-07 10:51:31

标签: angularjs configure custom-tag

我正在使用此库https://github.com/tchatel/angular-treeRepeat

因此,要创建节点列表,请使用此语法:

<li frang-tree-repeat="node in treeData>

frang-tree-repeat是自定义标记,因此必须在库中的某处配置?

搜索https://github.com/tchatel/angular-treeRepeat的src我没有看到任何对frang-tree-repeat的引用,那么如何配置这个标签,换句话说,如何解析frang-tree-repeat?

2 个答案:

答案 0 :(得分:1)

Angular规范化从kebab-case到camelCase的指令(属性和标记)名称。这是必要的,因为HTML标签和属性的名称更好地用kebab-case编写(因为名称在HTML中不区分大小写),而在Javascript kebab-case名称中不是有效的标识符,不能用于指令名称(嗯,他们可以,但它需要额外包装到引号中)。

这就是为什么你必须从HTML表示法到JS进行规范化的原因。 Angular有$normalize服务,用于此目的。所以这意味着,如果在HTML中你有frang-tree-repeat,它将在Javascript中被翻译为frangTreeRepeat

在您的情况下,您的指令可在此处找到:https://github.com/tchatel/angular-treeRepeat/blob/master/app/js/directives.js#L18

答案 1 :(得分:0)

frang-tree-repeat是一个自定义 directive ,在 angular-treeRepeat中的模块 app.directives中定义。正如@dfsq指出的那样,它的实现可以找到here

请注意,其定义frangtree中需要require: ^frangTree

  

指令使用此选项时,$compile将抛出错误,除非找到指定的控制器^前缀表示此指令在其父项上搜索控制器(没有^前缀,指令只会在自己的元素上寻找控制器