Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Polymer 聚合物关键全局变量未定义。为什么?_Polymer - Fatal编程技术网

Polymer 聚合物关键全局变量未定义。为什么?

Polymer 聚合物关键全局变量未定义。为什么?,polymer,Polymer,我在加载应用程序时遇到了一组奇怪的错误 polymer-micro.html:117 Uncaught TypeError: Cannot read property '_makeReady' of undefined (anonymous function) @ polymer-micro.html:117 第一个定义的是Polymer.RenderStatus polymer.html:3417 Uncaught TypeError: Polymer.dom is not a f

我在加载应用程序时遇到了一组奇怪的错误

polymer-micro.html:117 Uncaught TypeError: Cannot read property '_makeReady' of undefined
     (anonymous function) @ polymer-micro.html:117
第一个定义的是
Polymer.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的顶部放置一个断点(就在脚本标记之后),那么当我释放它时,错误就会消失。这几乎意味着它正常运行时不允许polymer-mini.html加载

我正在运行chrome,index.html中关于是否加载
webcomponents lite.js
polyfill的测试意味着它不会加载


我一直在思考如何调试这个问题。有什么想法吗?

事实证明,初始化脚本在index.html中的位置是导致这些问题的原因。我复制了Polymer Shop应用程序,该应用程序将脚本放在身体底部。在导入my app元素之前,由polymer cli工具创建的应用程序(使用应用程序抽屉模板)将脚本放置在标题中

我怀疑商店应用程序没有问题的原因是标题没有做任何动画。我在标题中使用了混合背景效果,这可能就是它失败的原因


无论如何,将包含聚合物初始化的脚本移动到标题中解决了问题。

将异步添加到导入中为我解决了这个问题

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

而不是

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

我正在试验2.0预览版,在尝试遵循Rob Dodson的路由多播(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>
****
//设置聚合物选项
窗口聚合物={
dom:“影子”,
懒汉:没错
};
//如果浏览器不支持本机Web组件,请加载webcomponentsjs polyfill
(功能(){
"严格使用",;
var onload=函数(){
//对于本机导入,手动激发WebComponentsReady so用户代码
//可以为本机导入和多填充导入使用相同的代码路径。
如果(!window.HTMLImports){
document.dispatchEvent(
新的CustomEvent('WebComponentsReady',{bubbles:true})
);
}
};
var webComponentsSupported=(
文档中的“registerElement”
&&document.createElement(“链接”)中的“导入”
&&document.createElement(“模板”)中的“内容”
);
如果(!WebComponents受支持){
**//var script=document.createElement('script');
//script.async=true;
//script.src='/bower_components/webcomponentsjs/webcomponents lite.min.js';
//script.onload=onload;
//document.head.appendChild(脚本)**
}否则{
onload();
}
})();
//加载预缓存服务工作者
if(导航器中的“serviceWorker”){
addEventListener('load',function()){
register('/service-worker.js');
});
}

Adam的编辑修复了格式设置。没有必要将其还原。