2015-09-08 59 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聲明中使用帶連字符的格式。欣賞答案都是一樣的。 –