2015-09-08 114 views
0

我是Angular的新手,所以试图去掌握它。一个早期的抱怨是,该指令在用作html元素时是连字符的,而在Javascript定义中是camelCased的。如何防止Angular指令正常化?

例如此Javascript:

myApp.directive('myDirective', function() { 
    ...etc 

关联到这个网站:

<my-directive></my-directive> 

我真的不喜欢,同样的指令格式完全不同的事实。在我的代码库中搜索它的使用现在涉及2个搜索。具有讽刺意味的是,我想对这两种格式进行规范化处理。有没有一种配置我的设置,使HTML和Javascript定义都使用相同的情况?

+3

我不这么认为。如果你想避免所有这些疯狂,只需使用React就太迟了:)如果它增加了我的建议的可信度,我就会成为有史以来最伟大的角色球迷之一,但我错了。 – m59

+0

我喜欢把所有的都放在小写字母中 –

回答

3

角被自以为是的事情很多,包括这一个。此行为is hardcoded,并且规范化不能被重写。

Angular有其强制指令名称驼峰的理由,因为骆驼事件被用作命名服务的惯例,并且myDirective指令在内部变为myDirectiveDirective服务。

显然,:-_字符are used as delimiters正常化到骆驼案件。虽然其中没有一个在HTML element name中有效,但-the only future-proof定界符,用于其中的自定义元素。

虽然会议中断,验证者愤怒并且可能无效,但只要浏览器可以使用,就可以使用任何其他分隔符。例如。点符号有很好的机会去做把戏

<my.directive></my.directive> 

在现代浏览器中。

从一开始就打破Angular的惯例并不是与它交朋友的最佳方式,人们可以做的最好的事情就是处理它并搜索my-?directive而不是只要开发工具得到支持搜索正则表达式。

0

不幸的是,你不能。这样做是因为DOM不区分大小写。

但你应该很快适应它。

问候, 埃里克

+0

我明白你的意思,但是这并不妨碍Angular允许我们在Javascript声明中使用带连字符的格式。欣赏答案都是一样的。 –