2016-06-16 96 views
1

我想在顯示組件時將注意力集中在一個標籤上,並且想知道Polymer是否有內置的功能,如果不是的話,我想知道別人怎麼做。謝謝。聚合物是否有組件「組件出現」事件?

+0

你試圖做到這一點在組件代碼或出來的嗎? – Alan

+0

裏面...我正在用霓虹燈動畫頁面...它是在霓虹燈動畫 – Jaime

+0

所以,你想設置焦點到你的組件內的標籤,一旦整個組件已被加載和附加到主文檔? – Alan

回答

2

您需要使用attached callback,一旦您的組件被加載並連接到dom,就會調用attached callback

下面是你需要做的(and here a jsbin with it working)什麼一些示例代碼:

<dom-module id="x-test"> 
    <template> 
    <a id="tofocus" href="/">I'm going to get focused</a> 
    <a>but I'm not</a> 
    </template> 
    <script> 
    Polymer({ 
     is: 'x-test', 
     attached: function() { 
     this.$.tofocus.focus(); 
     } 
    }); 
    </script> 
</dom-module> 
+0

這基本上是我正在尋找的方法...但是,它不能解決我的問題。我正在使用neon-animated-pages組件,並且在其中我想關注某些標籤,因爲顯示了不同的頁面......通過此附加事件,所有附加事件都會在加載時觸發。任何想法解決這個問題? – Jaime

+0

那麼你很可能需要聽'neon-animation-finish'事件 – Alan

0

有高分子沒有componentAppeared概念。可以這麼說,DOM中標記的每個元素都「出現」了。

看來你想通過<neon-animated-pages>組件顯示「頁面」。被包裹在裏面<neon-animated-pages>的每一頁都已經被標記到DOM - 每一頁的可見性是由控制器元素通過CSS display:block/display:none處理

如果你想要做的東西當頁面顯示,你會必須手動連線

<neon-animated-pages selected="{{selected}}" on-neon-animation-finish="_focus"> 

    <neon-animatable class="red" entry-animation="fade-in-animation" exit-animation="fade-out-animation"> 
    <h1>Page 1</h1> 
    <a id="label0" href="#">Focus me</a> 
    </neon-animatable> 

    <neon-animatable class="green" entry-animation="fade-in-animation" exit-animation="fade-out-animation"> 
    <h1>Page 2</h1> 
    <a id="label1" href="#">Focus me</a> 
    </neon-animatable> 

</neon-animated-pages> 

...

_focus: function() { 
    this.$['label'+this.selected].focus(); 
    } 

Jsbin:http://jsbin.com/celesobiba/edit?html,console,output