具有双向属性绑定的聚合物自定义元素

伊格洛特

我有一个聚合物元素显示和设定一个等级(1-5星级),我不管理,使其在这个意义上的工作,它显示给定的额定值,以及反向传播的价值,也就是说,改变{{item.rating}}的单击其中一颗星星的情况。可能是什么问题呢 ?

我使用这样的元素,它不会改变item.rating

<yp-rating rating="{{item.rating}}"></yp-rating>

使用纸张输入,它的工作原理:

<paper-input value="{{item.rating}}" label="Rating"></paper-input>

元素本身在这里:

<dom-module id="yp-rating">
    <template>
        <style is="custom-style">
        iron-icon {
            --iron-icon-fill-color: lightgray;
        }
        </style>

        <iron-icon th:title="#{rating1}" icon="{{star(rating, 1)}}" on-tap="setStar" data-s="1"></iron-icon>
        <iron-icon th:title="#{rating2}" icon="{{star(rating, 2)}}" on-tap="setStar" data-s="2"></iron-icon>
        <iron-icon th:title="#{rating3}" icon="{{star(rating, 3)}}" on-tap="setStar" data-s="3"></iron-icon>
        <iron-icon th:title="#{rating4}" icon="{{star(rating, 4)}}" on-tap="setStar" data-s="4"></iron-icon>
        <iron-icon th:title="#{rating5}" icon="{{star(rating, 5)}}" on-tap="setStar" data-s="5"></iron-icon>

    </template>
    <script type="text/javascript">
        Polymer({
            is : "yp-rating",
            properties: {
                rating: String,
                notify: true
                //readOnly: false,
                //reflectToAttribute: true
            },
            star: function(r, l) {
                return (this.rating && this.rating >= l) ? "star" : "star-border";
            },
            setStar: function(e) {
                this.rating = e.target.getAttribute("data-s");
                console.log("Rating set to " + this.rating);
                e.stopPropagation();
            }
        });
    </script>
</dom-module>
托尼19

您的rating财产未正确申报。您已经声明了两个属性:ratingand notify,但您可能打算notify: true在该rating属性上设置

改变这个:

properties: {
  rating: String,
  notify: true
}

对此:

properties: {
  rating: {
    type: String,
    notify: true
  }
}

演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

样式仅在具有布局属性的元素内应用于自定义聚合物元素的样式

如何将属性从自定义聚合物元素绑定到angularjs

具有模板即内容的聚合物自定义元素

聚合物1.0:带有输入元素的双向绑定

如何将聚合物自定义元素绑定到内容?

聚合物自定义元素属性为布尔型值

聚合物布局属性可在整个视口上拉伸自定义元素

如何使用存储在自定义聚合物2.0元素属性中的对象

具有Javascript和属性的聚合物数据绑定

自定义元素模板中的聚合物 3 自定义元素

聚合物查询选择器无法在聚合物元素中找到自定义聚合物元素

在聚合物的内容元素中使用自定义元素

具有双向数据绑定的自定义视图

聚合物添加行为而不创建自定义元素?

切换自定义元素“聚合物”中的纸张对话框

如何在自定义聚合物元素中处理paper-dropdown-close事件

在自己的项目中使用自定义聚合物元素-如何正确执行?

如何使Disqus注释javascript代码在聚合物自定义元素中工作

聚合物:在“自定义元素”中使用querySelector而不是“ this。$”。

在另一个自定义标签内动态创建聚合物元素

聚合物:创建一个“常规”自定义元素

如何为聚合物2创建自定义元素的“调整大小” mixin?

在自定义聚合物元素中,我需要在何处安装super.attach?

自定义div元素(聚合物)不监听contentEditable =“ true”

聚合物:自定义元素不隐藏标记,CSS

聚合物2,从父级更改自定义元素中的CSS

基于父页面的自定义元素“聚合物”对话框的大小/位置

聚合物自定义元素将不会样式化

聚合物中不会在页面上显示计算的自定义属性