2014-07-16 102 views
2

因此,我試圖在我的視圖中使用querySelector選擇聚合物自定義元素(使用paper_elements)。我能夠選擇正常的HTML元素就好了。特別是,我試圖選擇一個特定的紙張輸入元素。我希望能夠查詢它的埋入其中的第二個影子根源的輸入元素。如何在角度飛鏢視圖中選擇聚合物飛鏢自定義元素

我已經試過如下:

querySelector('#my-paper-input::shadow #input') 
querySelector('paper-input::shadow input') 

和很多其他的變化。但是,不管我做什麼,查詢總是返回null。這讓我很生氣,因爲我可以用CSS來設計它。做什麼?

回答

1

據我所知,你必須使用幾個步驟

querySelector('#my-paper-input').shadowRoot.querySelector('input'); 

但你也應該能夠訪問使用外部元素的屬性值一樣

querySelector('#my-paper-input').attributes['value'] or 
querySelector('#my-paper-input').attributes['inputValue'] 

你也可以使用http://pub.dartlang.org/packages/angular_node_bind
但我最近無法使用Angular的紙質元素(請參見https://github.com/angular/angular.dart/issues/1227

+0

沒有骰子,我甚至無法選擇紙張輸入。 >。我試圖在視圖的控制器中運行querySelector –

+0

當你添加一個類型爲「Element」的構造函數參數時,你得到了傳入的視圖元素,然後你可以在View上調用querySelector。如果視圖是一個普通的Angular組件,它本身就有一個shadowDOM。視圖組件需要實現ShadowRootAware在'onShadowRoot'方法中執行查詢。這是組件完全初始化的時候。您還必須確保Polymer完全初始化,否則shadowRoot將無法訪問。 –

+0

謝謝,我能看到一個例子嗎? –