我正在尝试使用Polymer创建一个非常简单的HTML页面,其中包含一个包含我需要的所有组件的HTML文件:
<link rel="import" href="bower_components/iron-ajax/iron-ajax.html">
<link rel="import" href="components/my-element.html">
my-element.html
看起来像这样:
<link rel="import" href="../bower_components/polymer/polymer.html">
<polymer-element name="my-element">
<template>
// Some HTML
</template>
<script>
Polymer({
is: 'my-element',
properties:{
// properties
}
});
</script>
</polymer-element>
当我按原样运行时,一切正常。
当我尝试硫化components.html
文件,然后打开与硫化版本相同的页面时,我在控制台中收到以下错误
“Uncaught TypeError:prototype.registerCallback不是函数”
我注意到硫化过程转为
Polymer({
is: 'my-element',
properties:{
// properties
}
});
进入
Polymer('my-element', {
is: 'my-element',
properties:{
// properties
}
});
这似乎是造成错误的原因,因为window.Polymer只需要一个Object作为参数。
我正在使用grunt-vulcanize来进行实际的硫化,我的配置如下所示:
vulcanize: {
default: {
options: {
excludes: {
imports: [
'polymer.html'
]
},
'strip-excludes': false,
inline: true,
strip: true
},
files: {
'build.html': 'components.html'
},
},
}
有没有办法阻止这个?
我正在使用聚合物1.0,并且使用咕噜硫化0.6.4
答案 0 :(得分:0)
知道了:我使用<polymer-element>
代替<dom-module>
。 <dom-module>
对于Polymer 1.0来说是正确的。
本指南非常有用,并且花了我几天的时间才找到,如果只是为了让你知道什么适用于0.5以及什么适用于1.0:
答案 1 :(得分:0)
grunt-vulcanize与硫化1.8.1不兼容,因为github上的最新更新是在2月9日版本0.6.4。它是Polymer 0.8 +的过期插件。
临时适用于硫化 - 硫化^ 1.8.1和聚合物1.0的咕噜硫化。 https://github.com/kgadzinowski/grunt-vulcanize/
只需更改package.json:
&#34; grunt-vulcanize&#34;:&#34; kgadzinowski / grunt-vulcanize&#34;
它会正常工作