2013-01-12 43 views
3

我建立一個自定義的AngularJS指令來創建一個谷歌地圖,我已經在我的自定義標籤內存儲的屬性一些的谷歌地圖選項:HTML元素屬性帶有連名字都自動轉換爲駝峯

<googlemap zoom-control="true" …></googlemap> 

Angular的指令編譯方法有參數(tElement, tAttrs, transclude);當我登錄tAttrs到控制檯,對象有那些已經轉連字符駝峯與名稱屬性:

screenshot from Chrome Dev Tools of the expanded $tAttrs object (property names have been converted to valid format)

誰是這樣做的 - 角或瀏覽器(在Firefox &鉻檢查)?我可以依靠這種行爲嗎?

P.S.當我檢查DOM時,html元素的屬性仍然有連字符。

回答

6

Angular正在這樣做。是的,你可以依靠它:

Attributes頁:

共享指令編譯/鏈接功能之間包含標準化的DOM元素對象的屬性。這些值反映當前綁定狀態{{}}。需要標準化,因爲所有這些都等同對待的角度:
<span ng:bind="a" ng-bind="a" data-ng-bind="a" x-ng-bind="a">

+0

謝謝!我試圖搜索「連字符」和「破折號」的文檔,但從來沒有得到該網頁。我知道'ng:bind' vs'ng-bind'與'data-ng-bind',但我沒有意識到Angular會將屬性名稱轉換爲json友好的名稱。順便說一句,我使用該服務,它的工作很好(但我想看看我是否可以做到這一點「角度的方式」)。 – jacob

+1

@jacob昨天我再次看了你的服務......你可能會更好,只是讓它保持原樣。我不知道如何向HTML添加指令,然後可以封裝執行DOM操作的addListner,因爲所有的HTML都是由Google API添加的。 (對於其他讀者,我們正在討論[此服務](http://stackoverflow.com/questions/14226975/angularjs-ng-include-inside-of-google-maps-infowindow/14228601#14228601))。 –

+0

好的謝謝。我會將其添加到待辦事項的最後,以便在完成其他任務後查看它。謝謝! – jacob