我希望在显示组件时将焦点设置在标签上,并且我想知道Polymer是否内置了它,如果不是,我想知道其他人是如何做到的。感谢。
答案 0 :(得分:2)
您需要使用加载组件并附加到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>
答案 1 :(得分:0)
Polymer中没有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();
}