【问题标题】:Polymer paper-slider behaves strangely when setting "min" by data binding通过数据绑定设置“min”时,聚合物纸滑块行为异常
【发布时间】:2018-06-01 12:32:55
【问题描述】:

我在自定义元素中使用Polymerpaper-slider。我在我的自定义元素中传递了一个min 属性并将其分配给滑块的min 值。但是滑块的行为很奇怪,直到光标移动到任一极端并且值在非常高的范围内不断变化时才会滑动。

代码如下:

<link rel="import" href="/bower_components/paper-slider/paper-slider.html">

<dom-module id="slider-two">
    <template>
        <br>
        <br>
        <paper-slider pin min=[[min]]></paper-slider>

    </template>
    <script>
        Polymer({
            is: 'slider-two',
            properties: {
                min: {
                    type: String
                }
            }
        });
    </script>

</dom-module>

用法:

<slider-two min='5'></slider-two>

导致这种奇怪行为的代码中的错误是什么。将代码中的min=[[min]] 替换为max=[[min]] 会得到预期的正确结果,而奇怪的行为仅由min 引起。我也尝试将名称更改为 min 以外的其他名称。

我使用bower i --save paper-slider 安装它,我正在使用Polymer 1.0.0(为了它与某个leaflet-map 兼容)。

【问题讨论】:

    标签: html polymer bower polymer-1.0


    【解决方案1】:

    问题可能是您将min 属性声明为String,但根据文档,它应该是一个数字:paper-slider docs

    min: number = 0 通知
    继承自 Polymer.IronRangeBehavior

    表示范围最小值的数字。

    尝试将min 声明为Number

    Polymer({
        is: 'slider-two',
        properties: {
            min: {
                type: Number
            }
        }
    });
    

    【讨论】:

    • 但是为什么它可以与其他属性 lilke maxvaluestep 一起使用(这些是我们可以在 paper-slider 上设置的其他属性?
    • 它适用于Number。虽然我仍然不明白String 是如何为max 和其他人工作的。
    • iron-slider 使用iron-range-behavior 管理其数值。查看计算步长的this 行:min 属性被添加到先前的值。如果minString,则此加法运算的结果是字符串连接而不是数字加法。尝试console.log()immediateValuepaper-slider 的第 629 行,你会看到一个字符串序列,全部以min 的数字而不是正确的数字结尾。
    • 确实如此。 this.max 也从此类错误中逃脱,因为它永远不会与 + 一起作为 here 发生。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多