如何访问组件脚本中的私有对象?

时间:2016-06-27 01:40:53

标签: javascript polymer web-component

this question中,OP询问如何避免将私有对象暴露给组件外部。我一直在谷歌搜索,无法找到相反的方法。假设我有以下组件,我想从我的网页或父组件访问privateObj。如何使用JavaScript和Polymer API完成?

<polymer-element name="animating-element">
   <script>    
     var privateObj = {};

     privateObj.internalState = 0; 

     //private static method
     privateObject.setupState = function(polymerObject) {
        if(polymerObject.stateExposedToOutside == /* some conditions */) { 
           privateObject.internalState = 1;
        }
     }

     Polymer('animating-element', {
        stateExposedToOutside: 0,
        ready: function() {

          privateObj.setupState(this);
          this.animate();

        },
        animate: function() {

        }
      });    
   </script>
</polymer-element>

1 个答案:

答案 0 :(得分:1)

您可以在public构造函数中创建Polymer方法,该方法将返回privateObj

的值
 privateObjValue:function(){
   return privateObj;
 }

现在,您可以使用this.privateObjValue()读取对象的值(不确定它在Polymer 0.5中的工作原理)