控制铁页的聚合物自定义组件
Polymer custom component that controls iron-pages
我正在尝试创建一个自定义的Polymer组件,它有控制iron-page
(分页和页面指示器)的按钮。
目前,我已经创建了以下组件:
<dom-module id="my-carousel">
<template>
<style>
:host {
display: block;
}
iron-pages,
.pagination {
border: 1px solid black;
padding: 1em;
margin: 1em;
}
</style>
<iron-pages selected="0">
<div>Page 0</div>
<div>Page 1</div>
<div>Page 2</div>
<div>Page 3</div>
</iron-pages>
<div class="pagination">
<a href="#" onclick="this.parentNode.parentNode.querySelector('iron-pages').selectPrevious(); return false;">Previous</a>
<template is="dom-repeat" items="{{ironPages.items}}">
<a href="#" onclick="this.parentNode.parentNode.querySelector('iron-pages').select({{index}}); return false;">{{index}}</a>
</template>
<a href="#" onclick="this.parentNode.parentNode.querySelector('iron-pages').selectNext(); return false;">Next</a>
<br />
Page {{ironPages.selected}} of {{ironPages.items.length}}
</div>
</template>
<script>
Polymer({
is: "my-carousel",
ready: function() {
this.ironPages = this.$$('iron-pages');
}
});
</script>
</dom-module>
现场演示:http://jsbin.com/rasuqaduhe/edit?html,输出
唯一有效的方法是:
- 上一个/下一个链接
- 总页数指标
我的问题如下:
onclick
属性看起来很难看。有合适的方法吗- 有没有更好的方法来获取
iron-page
的实例,或者this.$$('iron-pages')
可以吗 - 为什么当前所选页面的编号不起作用
- 为什么点击页码无效
此处:http://jsbin.com/sesope/edit?html,输出
- onclick属性看起来很难看。有合适的方法吗?
带注释的事件侦听器。https://www.polymer-project.org/1.0/docs/devguide/events.html#annotated-监听器
- 有没有更好的方法来获取铁页的实例,或者是这样$$("党内会议")好吗?
可以,但您也可以将
id
添加到iron-pages
元素中。Polymer在其本地DOM中自动构建静态创建的实例节点的映射,以提供对常用节点的方便访问,而无需手动查询。元素模板中指定的具有id
的任何节点都由id
存储在this.$
散列中。https://www.polymer-project.org/1.0/docs/devguide/local-dom.html#node-查找 - 为什么当前所选页面的编号不起作用?
未通知
iron-pages
元素其selected
属性已更改。但是,您不应该依赖它,而应该在元素上声明一个selected
属性。因此,每当my-carousel
的selected
属性发生更改时,此行<iron-pages selected="{{selected}}" id="pages">
将通知iron-pages
元素更改页面。 - 为什么点击页码无效?
在
onclick
之后添加$
符号实际上会使其工作(onclick$="Your code"
)。但请不要那样做。请改用带注释的事件侦听器。
请参阅我的jsbin答案,这样你就可以了解聚合物领域的工作原理了。
- 对自定义组件中的本地访问引用进行反应
- 点击tpl链接时,ExtJS 4.2自定义组件触发事件
- Extjs 4,事件处理,范围,自定义组件
- Gwd自定义组件及其事件处理程序
- 从自定义组件内部查找 Ember
- 在 ionic 2 中缓存自定义组件内容
- 挖空绑定自定义组件,使其不与中心视图模型冲突
- 使用 Aurelia在视图中动态生成自定义组件
- Ember.js自定义组件或视图
- Vue.js 使用 Vuex 和自定义组件,@click方法输出未定义
- 如何侦听 RactiveJS 自定义组件
- VideoJS v5 - 在 ES6 中添加自定义组件 - 我做得对吗?
- 如何将自定义组件与反应路由器路由转换一起使用
- React-Native:ScrollView,refs和自定义组件
- extjs4 - 将自定义组件添加到容器
- JSF 自定义组件在与 Oracle ADF 一起使用时缺少自动生成的 JavaScript
- 嵌入 API 自定义组件:未捕获类型错误:无法读取未定义的属性“ViewSelector2”
- KnockoutJS:访问自定义组件之外的可观察变量
- 控制铁页的聚合物自定义组件
- Sencha touch 2-自定义组件开发数据项未从存储加载值