簡體   English   中英

聚合物鍵全局變量未定義。 為什么?

[英]Polymer key global variables undefined. Why?

加載應用程序時出現了一系列奇怪的錯誤

polymer-micro.html:117 Uncaught TypeError: Cannot read property '_makeReady' of undefined
     (anonymous function) @ polymer-micro.html:117

第一個中的Polymer.RenderStatusPolymer.RenderStatus

polymer.html:3417 Uncaught TypeError: Polymer.dom is not a function
     _findStyleHost @ polymer.html:3417
     _computeStyleProperties @ polymer.html:3461
     _applyCustomProperties @ polymer.html:3652
     fn @ polymer.html:3638

顯然,Polymer.dom應該是一個功能。 為什么不呢?

Uncaught TypeError: Cannot read property '_isEventBogus' of undefined
      _notifyListener @ polymer.html:2012
      (anonymous function) @ polymer.html:1534
      fire @ polymer.html:1277
      _notifyChange @ polymer.html:1372
      _notifyEffect @ polymer.html:1553
     _effectEffects @ polymer.html:1405
     _propertySetter @ polymer.html:1389
     setter @ polymer.html:1468q
     ueryHandler @ iron-media-query.html:116

每當我們跨屏幕跨媒體查詢邊界移動屏幕寬度時,這就是一個媒體查詢會產生此錯誤。 在這種情況下,未定義的變量是Polymer.Bind

如果我在polymer.html的頂部(在script標簽之后)放置一個斷點,那么當我放開它時,錯誤就會消失。 這幾乎意味着它通常在不加載polymer-mini.html的情況下運行。

我正在使用chrome,並且index.html中有關是否加載webcomponents-lite.js意味着它不會加載。

我被困在調試該問題的方法上。 有任何想法嗎?

事實證明,初始化腳本在index.html中的定位是造成這些問題的原因。 我已經復制了Polymer Shop應用程序,該程序將腳本放置在正文的底部。 在導入my-app元素之前,由polymer-cli工具創建的應用程序(帶有app-drawer模板)將腳本放在標頭中。

我懷疑商店應用沒有問題的原因是標題沒有進行任何動畫處理。 我在標題中使用了混合背景效果,這可能就是為什么它失敗的原因。

無論如何,將包含Polymer初始化的腳本移動到標題中可以解決此問題。

添加異步到導入為我解決了。

<link rel="import" href="/src/your-app.html" async>

代替

<link rel="import" href="/src/your-app.html">

我正在嘗試2.0預覽版,嘗試遵循Rob Dodson的路由Polycast時遇到了類似的錯誤(#47,48 ish)。 經過數小時的嘗試其他解決方案后,這才起作用:

    **<script src="/bower_components/webcomponentsjs/webcomponents-lite.js">**
  // Setup Polymer options
  window.Polymer = {
    dom: 'shadow',
    lazyRegister: true
  };

  // Load webcomponentsjs polyfill if browser does not support native Web Components
  (function() {
    'use strict';

    var onload = function() {
      // For native Imports, manually fire WebComponentsReady so user code
      // can use the same code path for native and polyfill'd imports.
      if (!window.HTMLImports) {
        document.dispatchEvent(
          new CustomEvent('WebComponentsReady', {bubbles: true})
        );
      }
    };

    var webComponentsSupported = (
      'registerElement' in document
      && 'import' in document.createElement('link')
      && 'content' in document.createElement('template')
    );

    if (!webComponentsSupported) {
      **// var script = document.createElement('script');
      // script.async = true;
      // script.src = '/bower_components/webcomponentsjs/webcomponents-lite.min.js';
      // script.onload = onload;
      // document.head.appendChild(script);**
    } else {
      onload();
    }
  })();

  // Load pre-caching Service Worker
  if ('serviceWorker' in navigator) {
    window.addEventListener('load', function() {
      navigator.serviceWorker.register('/service-worker.js');
    });
  }
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM