2

我在使用 Polymer 0.5.2 的 Firefox 35 中遇到单态模式的问题。我的元素如下所示:

<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>

在 Chrome 中,ready我可以看到 store 对象的各种属性,但在 Firefox 上,这些属性从未定义(即使在应用程序完成加载很久之后)。

任何想法为什么?

我尝试过的事情:

  • 确保tracer-storetracer-globals.
4

1 回答 1

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>

非常感谢您对为什么这样做有效的评论。

于 2015-01-26T20:35:28.920 回答