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、ストア オブジェクトのさまざまな属性を確認できますが、Firefox では属性が定義されていません (アプリの読み込みが完了した後でも)。

理由はありますか?

私が試したこと:

  • tracer-storeが の前にインポートされていることを確認してくださいtracer-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 に答える