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>

最佳答案

您可以在public构造函数内创建一个Polymer方法,该方法将返回privateObj的值

 privateObjValue:function(){
   return privateObj;
 }


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

08-05 08:58