Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Polymer 声明自定义元素';聚合物的私有财产_Polymer_Polymer 1.0_Private Members - Fatal编程技术网

Polymer 声明自定义元素';聚合物的私有财产

Polymer 声明自定义元素';聚合物的私有财产,polymer,polymer-1.0,private-members,Polymer,Polymer 1.0,Private Members,通过查看Polymer开发指南,properties对象中声明的属性将成为元素的公共API。所以我通常不在properties对象内声明私有属性,而是声明私有属性 ready: function() { this.privatePropertyName = 'random text'; } 我还看到一些代码在带有前缀命名约定的属性中声明私有属性,如 properties: { _privateProperty: { type: Number, readO

通过查看Polymer开发指南,properties对象中声明的属性将成为元素的公共API。所以我通常不在properties对象内声明私有属性,而是声明私有属性

ready: function() {
  this.privatePropertyName = 'random text';
}
我还看到一些代码在带有前缀命名约定的属性中声明私有属性,如

  properties: {
    _privateProperty: {
      type: Number,
      readOnly: true,
      value: 0,
    }
  }
这方面的最佳实践是什么(如果有的话)?我们是否应该坚持只有公共属性才能进入properties对象的规则?

如果您看一下它们遵循的做法,即声明property对象中的所有属性。他们使用
将私有财产与公共财产分开


{{newProp}}
聚合物({
是‘有私人’吗,
特性:{
_私人:“私人会员”,
内部:{
类型:字符串,
值:“ousidePropertiesObject”,
reflectToAttribute:true,
观察者:“(内部更改)”
}
},
外部:{
类型:字符串,
值:“ousidePropertiesObject”,
reflectToAttribute:true,
观察家:"你改变了"
},
_更改:函数(newVal){
警报(“外部为“+newVal”时的新值);
},
_内部更改:函数(newVal){
警报(“如果内部为:+newVal,则为新值”);
},
附:函数(){
console.log(“外部值”,this.outSide);
警报(“来自内部元素\n外部:“+this.outside+”内部:“+this.inside”);
警报(“新道具:+this.newProp”);
this.undeclaredProperty=“我没有在代码中的任何地方声明”;
}
})
聚合物({
是:'访问私有',
附:函数(){
此$.private.outSide=“我工作”;
这个$.private.inSide=“我工作”;
警报(“访问private中has private元素的私有属性的值为:“+this.$.private.\u private”);
警报(“属性对象外部的属性值为:“+this.$.private.outside”);
警报(“未声明属性的值为:+this.$.private.undeclaredProperty”);
}
})

谢谢你的回答!那么,有没有一条指导方针明确说明什么时候应该在property对象内显式声明私有属性,而不是什么时候可以在回调或函数内隐式声明私有属性?谢谢您提供的详细信息和代码示例。这些都是有道理的,我对第三点有点困惑:“类似地,您可以在标记中提到一个属性,该属性尚未在properties对象中声明,然后在内部元素的标记或javascript中使用它”。我已经做了一些代码测试,看起来如果我们不在properties对象中声明属性,那么从外部标记指定的属性将不会被反序列化,也不会成为它的属性。它只能作为标记中的属性使用。我添加了名为
newProp
的新属性,说明了第三点。第三点不适用于布尔值的情况