聚合物单稳态模式元素未升级

时间:2015-01-24 16:40:46

标签: polymer monostate

我使用Polymer 0.5.2在Firefox 35中遇到了monostate模式的问题。我的元素看起来像这样:

<polymer-element name="tracer-globals">
  <script>
    (function() {

      var store = document.createElement('tracer-store');

      Polymer({
        publish: {
          store: null
        },

        ready: function() {
          this.store = store;
        }
      });
    })();
  </script>
</polymer-element>

ready点的Chrome中,我可以看到商店对象的各种属性,但在Firefox上,永远不会定义属性(甚至在应用完成加载后很长时间)。

任何想法为什么?

我尝试的事情:

  • 确保在tracer-store之前导入tracer-globals

1 个答案:

答案 0 :(得分:1)

找到了解决方法:

created回调中延迟加载全局对象:

<polymer-element name="tracer-globals">
  <script>
    (function() {

      var store = null;

      var getStore = function() {
        if (store === null) {
          store = document.createElement('tracer-store');
        }
        return store;
      };

      Polymer({
        publish: {
          store: null
        },

        created: function() {
          this.store = getStore();
        }
      });
    })();
  </script>
</polymer-element>

非常感谢有关其原因的评论。