如何正确使用熨斗可选?像铁页一样使用时,项目显示为null
How to use iron-selectable correctly? Items appear to be null when used like iron-pages
我有一个相当简单的Polymer元素,它实现了IronSelectableBehavior
,但我发现this.items
总是一个空数组。
我用iron-pages
的方式设置它,只需使用子元素,不需要太多其他元素:
<link rel="import" href="../../bower_components/polymer/polymer.html">
<link rel="import" href="../../bower_components/iron-selector/iron-selectable.html">
<dom-module id="test">
<template>
<style>
</style>
<div id="container">
<content></content>
</div>
</template>
<script>
(function(root) {
'use strict';
Polymer({
is: 'test',
behaviors: [Polymer.IronSelectableBehavior],
observers: [
'_selectedChanged(selected)'
],
_selectedChanged: function(val, prev) {
var self = this,
selected = this._valueToItem(val);
if(!selected) {
throw val.toString() + ' not found.';
}
}
});
})(window);
</script>
</dom-module>
以下示例:
<test attr-for-selected="data-test" selected="{{selected}}">
<div data-test="one"></div>
<div data-test="two"></div>
</test>
当调用_selectedChanged
时,selected
是undefined
,因为this.items
是一个空数组。
iron-pages
的设置代码甚至比这更少,但不知何故可以工作,所以我不确定这里出了什么问题。
iron-selectable
将this.items
设置为附着后的内容节点- 它通过观察
selected
并填充this.items
(如果它们还没有)来实现这一点
如果您想在自己的selected
观察器中与this.items
交互,这会导致问题,因为在执行观察器时,阵列尚未填充。
要绕过此问题,请侦听iron-select
事件,该事件保证在iron-selectable
观察器之后执行。
如果您需要知道上一个值(因为iron-select
没有传递它),请在selected
观察器中设置它,并在事件侦听器中读取它。
相关文章:
- 如何将dxFileUploader配置为像一个简单的按钮一样显示
- 仅从表中选择/突出显示列,“就像 GitHub 一样”
- 如何像语法突出显示一样替换字符串中的单词
- 让 Mozilla 像 Chrome 一样显示
- 在鼠标悬停时突出显示 DOM 元素,就像检查一样
- 我想像Facebook或验证码验证一样显示一个面板
- 显示图像右侧的文本,就好像图像比实际大一样
- Javascript 像 jquery 一样显示/隐藏
- 在 HTML 中像视频一样显示图像流
- 单击时显示范围标题,就像鼠标悬停时一样
- IE 11有没有办法像chrome一样显示物体的内部?也许是一个插件
- 如何让文本像原始输入一样显示在文本区域
- 当链接悬停时创建一个弹出窗口,就像在facebook中一样,当你把光标放在链接上时,它会显示发送消息等选项
- 如何在网站中像字符串一样显示html代码和javascript
- 如何正确使用熨斗可选?像铁页一样使用时,项目显示为null
- 幻灯片显示,像其他幻灯片一样将图像滑动进来
- 如何在Asp.net中使用c#创建编辑缩略图功能,就像在facebook中一样(同时上传显示图像)
- 我如何随机显示我的问题,所以它现在总是一样的?(JavaScript)
- 如何在eclipse控制台中显示java对象内容,就像javascript console.dir()一样
- 像工具提示一样显示Div - Div需要被放置在点击元素的旁边